mario-education 2.4.511-feedback → 2.4.511-release

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.
@@ -1,4 +1,4 @@
1
- import { api, BASE_URL, useTranslation as useTranslation$1, setAlert, CustomSelector, LinkEditButton, DeleteButtonIcon, EmptyDataAlert, CommonModal as CommonModal$2, RequiredLabel, ErrorHandler, useFilters, setLoading, setClassList, setModal, QuitPrompt, AddButton, CustomPagination, setConferenceRubricList, SearchBoxContainer, getTextFromHTML, DEFAULT_LANGUAGE_CODE, generateRandomString, SuggestionCategorySelector, CreatableSelector, setSuggestionList, setStrategyList, UploadFileButton, systemStudentBadge, setBadgeList, getFileUrl, setGoalExampleList, setSubjectList, setLearningSupportCategoryList, apiUpload, utcToLocalTime, setBandScoreList, EditButtonIcon, DATE_FORMAT, setSchoolBlankDayList, SearchBox, CustomTab, SkillList, QUESTION_TYPES, EMOTIONS, QUESTION_TYPES_OPTIONS as QUESTION_TYPES_OPTIONS$1, setQuestionList, QuestionCategorySelector, setQuestionByCategory, setSelectQuestion, setResetQuestionList, setMoveItemQuestion, setEditItemQuesion, DEFAULT_FILTER as DEFAULT_FILTER$2, setReflectionList, setReflectionResultList, DATE_RESULT as DATE_RESULT$1, StarRatingSelector, QuestionTypeSelector, CategorySelector as CategorySelector$1, editorConfig, DetailActionButtons, setAssessmentList, FULL_DATE_RESULT, setFeedbackList, TINY_MCE_API_KEY, setTutorialScreenList, setQuestionCateList, NotFound, setAssignmentList, setSessionTemplateList, setSessionTemplateGeneralClassList, setCustomAlertList, systemCertificateUpload, setCertificateList, initAmplitude, getStaticFileUrl, ACCESS_TOKEN, reset, NOTIFICATION_ALERT_KEY, setUser, setSandboxMode, setLanguage, showMenuBar, showFontSize, NOTIFICATION_CHANNEL, setEnableIEP, setConversationOneToOne, setEnableSurvey, canAccessRoute, amplitudeClient, firstCheckToken, getInfo, Loading as Loading$1, Dashboard as Dashboard$1, TheContent, isLocalhost, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, LICENSE_AGGRID } from 'mario-core';
1
+ import { api, BASE_URL, useTranslation as useTranslation$1, setAlert, CustomSelector, LinkEditButton, DeleteButtonIcon, EmptyDataAlert, CommonModal as CommonModal$2, RequiredLabel, ErrorHandler, useFilters, setLoading, setClassList, setModal, QuitPrompt, AddButton, CustomPagination, setConferenceRubricList, SearchBoxContainer, getTextFromHTML, DEFAULT_LANGUAGE_CODE, generateRandomString, SuggestionCategorySelector, CreatableSelector, setSuggestionList, setStrategyList, UploadFileButton, systemStudentBadge, setBadgeList, getFileUrl, setGoalExampleList, setSubjectList, setLearningSupportCategoryList, apiUpload, utcToLocalTime, setBandScoreList, EditButtonIcon, DATE_FORMAT, setSchoolBlankDayList, SearchBox, CustomTab, SkillList, QUESTION_TYPES, EMOTIONS, QUESTION_TYPES_OPTIONS as QUESTION_TYPES_OPTIONS$1, setQuestionList, QuestionCategorySelector, setQuestionByCategory, setSelectQuestion, setResetQuestionList, setMoveItemQuestion, setEditItemQuesion, DEFAULT_FILTER as DEFAULT_FILTER$2, setReflectionList, setReflectionResultList, DATE_RESULT as DATE_RESULT$1, StarRatingSelector, QuestionTypeSelector, CategorySelector as CategorySelector$1, editorConfig, DetailActionButtons, setAssessmentList, FULL_DATE_RESULT, setFeedbackList, TINY_MCE_API_KEY, setTutorialScreenList, setQuestionCateList, NotFound, setAssignmentList, setSessionTemplateList, setSessionTemplateGeneralClassList, setCustomAlertList, systemCertificateUpload, setCertificateList, initAmplitude, getStaticFileUrl, ACCESS_TOKEN, reset, NOTIFICATION_ALERT_KEY, setUser, setSandboxMode, setLanguage, showMenuBar, showFontSize, NOTIFICATION_CHANNEL, setEnableIEP, setConversationOneToOne, setEnableSurvey, setEnableMarioAi, canAccessRoute, amplitudeClient, firstCheckToken, getInfo, Loading as Loading$1, Dashboard as Dashboard$1, TheContent, isLocalhost, INIT_AMPLITUDE_KEY_PROD, INIT_AMPLITUDE_KEY_STAGE, LICENSE_AGGRID } from 'mario-core';
2
2
  import { LicenseManager } from '@ag-grid-enterprise/core';
3
3
  import * as React from 'react';
4
4
  import React__default, { useState, useRef, useCallback, useEffect, forwardRef, useMemo, Fragment as Fragment$1, memo, useContext, useImperativeHandle, createElement, createContext, Component } from 'react';
@@ -41,7 +41,7 @@ import ArrowForwardIcon from '@material-ui/icons/ArrowForward';
41
41
  import ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';
42
42
  import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';
43
43
  import { createPortal } from 'react-dom';
44
- import ArrowBackIcon from '@material-ui/icons/ArrowBack';
44
+ import ArrowBackIcon$1 from '@material-ui/icons/ArrowBack';
45
45
  import VisibilityIcon from '@material-ui/icons/Visibility';
46
46
  import StarBorderIcon from '@material-ui/icons/StarBorder';
47
47
  import StarIcon from '@material-ui/icons/Star';
@@ -85,6 +85,8 @@ import IconButton$1 from '@material-ui/core/IconButton';
85
85
  import MenuIcon from '@material-ui/icons/Menu';
86
86
  import NotificationsIcon from '@material-ui/icons/Notifications';
87
87
  import HelpOutlineIcon from '@material-ui/icons/HelpOutline';
88
+ import { GoogleGenerativeAI, SchemaType } from '@google/generative-ai';
89
+ import Markdown from 'react-markdown';
88
90
  import AddIcon from '@material-ui/icons/Add';
89
91
  import MoreVertIcon from '@material-ui/icons/MoreVert';
90
92
 
@@ -50468,7 +50470,7 @@ var CustomHeaderComponent = function CustomHeaderComponent(_ref) {
50468
50470
  className: styles["custom-header"] + " " + styles[classFontSize] + " " + (!!isGreyBackground && styles["grey-background"]) + " " + (!!borderNone && styles["border-none"])
50469
50471
  }, React__default.createElement(Grid, {
50470
50472
  className: "" + styles["custom-header-right"]
50471
- }, !!isGoback && React__default.createElement(ArrowBackIcon, {
50473
+ }, !!isGoback && React__default.createElement(ArrowBackIcon$1, {
50472
50474
  className: "custom-icon-back-page",
50473
50475
  onClick: function onClick() {
50474
50476
  return !!onHandleGoBack ? onHandleGoBack() : history.goBack();
@@ -54669,7 +54671,7 @@ var SurveyDetailAdmin = function SurveyDetailAdmin() {
54669
54671
  className: styles$6['header-survey-detail-container']
54670
54672
  }, React__default.createElement(Grid, {
54671
54673
  className: "" + styles$6["header-survey-detail"]
54672
- }, React__default.createElement(ArrowBackIcon, {
54674
+ }, React__default.createElement(ArrowBackIcon$1, {
54673
54675
  className: "" + styles$6["icon-back-page"],
54674
54676
  onClick: function onClick() {
54675
54677
  return onHandleGoBack();
@@ -68677,7 +68679,7 @@ var ModelSelectQuestion = function ModelSelectQuestion(_ref) {
68677
68679
  id: "simple-dialog-question"
68678
68680
  }, React__default.createElement(Grid, {
68679
68681
  className: "" + styles$6["box-header-select"]
68680
- }, React__default.createElement(ArrowBackIcon, {
68682
+ }, React__default.createElement(ArrowBackIcon$1, {
68681
68683
  className: "" + styles$6["header-select-icon"],
68682
68684
  onClick: function onClick() {
68683
68685
  return handleClose();
@@ -75218,6 +75220,11 @@ var useHeaderSideBar = function useHeaderSideBar(_navigations) {
75218
75220
  setScreenWidth = _useState2[1];
75219
75221
 
75220
75222
  var params = new URLSearchParams(location.search);
75223
+ var isEnableMarioAi = useSelector(function (state) {
75224
+ var _state$common5;
75225
+
75226
+ return (_state$common5 = state.common) === null || _state$common5 === void 0 ? void 0 : _state$common5.isEnableMarioAi;
75227
+ });
75221
75228
  var isReadOnly = params.get("isReadOnly");
75222
75229
 
75223
75230
  var _useNotificationAlert = useNotificationAlert(),
@@ -75340,6 +75347,7 @@ var useHeaderSideBar = function useHeaderSideBar(_navigations) {
75340
75347
  dispatch(setEnableIEP(res.data.isEnableIEP));
75341
75348
  dispatch(setConversationOneToOne(res.data.isConversationOneToOne));
75342
75349
  dispatch(setEnableSurvey(res.data.isEnableSurvey));
75350
+ dispatch(setEnableMarioAi(res.data.isEnableMarioAi));
75343
75351
  });
75344
75352
  }, function (err) {
75345
75353
  console.error(err);
@@ -75447,6 +75455,11 @@ var useHeaderSideBar = function useHeaderSideBar(_navigations) {
75447
75455
  }, {
75448
75456
  name: "External Api",
75449
75457
  icon: React__default.createElement(TokenIcon, null)
75458
+ }, {
75459
+ name: "MarioAI",
75460
+ icon: React__default.createElement("img", {
75461
+ src: "/images/mario-ai.png"
75462
+ })
75450
75463
  }];
75451
75464
  var renderNotificationBadge = useCallback(function () {
75452
75465
  if (!unreadNoti) return React__default.createElement(NotificationsIcon, {
@@ -75589,7 +75602,8 @@ var useHeaderSideBar = function useHeaderSideBar(_navigations) {
75589
75602
  handleClose: handleClose,
75590
75603
  renderNavigationItem: renderNavigationItem,
75591
75604
  goToSettings: goToSettings,
75592
- t: t
75605
+ t: t,
75606
+ isEnableMarioAi: isEnableMarioAi
75593
75607
  };
75594
75608
  };
75595
75609
  var useStyles$k = makeStyles$1(function (theme) {
@@ -75848,7 +75862,7 @@ var TimesIcon = function TimesIcon(_ref) {
75848
75862
  };
75849
75863
 
75850
75864
  var HeaderSideBar = function HeaderSideBar(_ref) {
75851
- var _handleUserRole, _clsx;
75865
+ var _handleUserRole, _navigations$filter, _clsx;
75852
75866
 
75853
75867
  var children = _ref.children,
75854
75868
  navigations = _ref.navigations,
@@ -75879,7 +75893,8 @@ var HeaderSideBar = function HeaderSideBar(_ref) {
75879
75893
  onChangeFont = _useHeaderSideBar.onChangeFont,
75880
75894
  handleClose = _useHeaderSideBar.handleClose,
75881
75895
  renderNavigationItem = _useHeaderSideBar.renderNavigationItem,
75882
- t = _useHeaderSideBar.t;
75896
+ t = _useHeaderSideBar.t,
75897
+ isEnableMarioAi = _useHeaderSideBar.isEnableMarioAi;
75883
75898
 
75884
75899
  return React__default.createElement("div", {
75885
75900
  style: {
@@ -76011,9 +76026,13 @@ var HeaderSideBar = function HeaderSideBar(_ref) {
76011
76026
  paddingTop: 0,
76012
76027
  paddingBottom: 50
76013
76028
  }
76014
- }, !!navigations && navigations.map(function (navigation) {
76029
+ }, !!navigations && (navigations === null || navigations === void 0 ? void 0 : (_navigations$filter = navigations.filter(function (r) {
76030
+ var _r$name;
76031
+
76032
+ return !isEnableMarioAi ? !((_r$name = r.name) !== null && _r$name !== void 0 && _r$name.includes('MarioAI')) : true;
76033
+ })) === null || _navigations$filter === void 0 ? void 0 : _navigations$filter.map(function (navigation) {
76015
76034
  return renderNavigationItem(navigation);
76016
- }))))), React__default.createElement("main", {
76035
+ })))))), React__default.createElement("main", {
76017
76036
  className: clsx(classes.content, (_clsx = {}, _clsx[classes.contentShift] = isReadOnly ? false : isOpenSideBar, _clsx))
76018
76037
  }, children));
76019
76038
  };
@@ -77640,7 +77659,435 @@ var SurveyQuestion = function SurveyQuestion() {
77640
77659
  }));
77641
77660
  };
77642
77661
 
77643
- var styles$d = {"survey-portal":"_32YVh","create-new-btn":"_2pqkt","survey-portal-dashboard":"_10mFg","dashboard-root":"_ol6v1","dashboard-header":"_1nGwv","header-left":"_3ZVx1","header-left-title":"_3zJ6N","header-left-description":"_aNEzP","dashboard-cards":"_T2QhN","show-blur":"_2k8eW","scroll-btn":"_3LX77","dashboard-card":"_rV_wf","dashboard-card-title":"_1dkjY","dashboard-card-description":"_2N0Jl","learn-more-btn":"_FoRnw","dashboard-surveys":"_y4RMj","dashboard-stats":"_2vCyM","dashboard-stats-title":"_1RtaL","create-template-button":"_1VeM-","create-survey-button":"_2FW07","survey-index":"_1-7Lk","survey-index-left":"_7ASwE","last-survey-index":"_5wgo2","survey-index-right":"_1bOyN","survey-index-card":"_2N-Ie","index-title":"_n24sR","link-view-survey":"_1f6ee","header-link":"_3dWko","active-survey-card":"_bKT0k","index-card-value":"_1O-jW","index-card-description":"_GLrEM","schedule-survey-card":"_1LDJ_","survey-item":"_W9PK3","survey-item-title":"_3c4hi","survey-item-date":"_2EvrJ","survey-item-Active":"_29PJt","survey-item-Close":"_GAmd7","survey-item-more":"_1Gz67","action-wrapper":"_15kTE","action-item":"_3LaNO","template-icon":"_nXa-q"};
77662
+ var useGeminiAI = function useGeminiAI() {
77663
+ var dispatch = useDispatch();
77664
+
77665
+ var systemPrompt = function systemPrompt(response) {
77666
+ return "\n Please analyze the following student feedback and categorize them into two groups:\n 1. Students who have flagged low energy.\n 2. Students who are feeling really happy.\n\n Return the result in JSON format with the structure:\n {\n \"lowEnergyStudents\": [\"name1\", \"name2\", ...],\n \"happyStudents\": [\"name1\", \"name2\", ...]\n }\n\n Here is the input data:\n " + response.map(function (r, index) {
77667
+ return index + ". " + r.studentName + ": \"" + r.answer + "\"";
77668
+ }) + "\n ";
77669
+ };
77670
+
77671
+ var _useState = useState([]),
77672
+ lowEnergyStudents = _useState[0],
77673
+ setLowEnergyStudents = _useState[1];
77674
+
77675
+ var _useState2 = useState([]),
77676
+ happyStudents = _useState2[0],
77677
+ setHappyStudents = _useState2[1];
77678
+
77679
+ var summarizeDataSchema = {
77680
+ description: "Summary of student emotional states",
77681
+ type: SchemaType.OBJECT,
77682
+ properties: {
77683
+ lowEnergyStudents: {
77684
+ type: SchemaType.ARRAY,
77685
+ items: {
77686
+ type: SchemaType.STRING
77687
+ }
77688
+ },
77689
+ happyStudents: {
77690
+ type: SchemaType.ARRAY,
77691
+ items: {
77692
+ type: SchemaType.STRING
77693
+ }
77694
+ }
77695
+ },
77696
+ required: ["lowEnergyStudents", "happyStudents"]
77697
+ };
77698
+
77699
+ var askGeminiAI = function askGeminiAI(summarizeResponses) {
77700
+ try {
77701
+ var _temp3 = function _temp3() {
77702
+ dispatch(setLoading(false));
77703
+ };
77704
+
77705
+ dispatch(setLoading(true));
77706
+
77707
+ var _temp4 = _catch(function () {
77708
+ var _systemPrompt;
77709
+
77710
+ var genAI = new GoogleGenerativeAI("AIzaSyAb1MebW5BcT__I8WZtbvKkDHYzZDHKZro");
77711
+ var model = genAI.getGenerativeModel({
77712
+ model: "gemini-1.5-flash",
77713
+ generationConfig: {
77714
+ responseMimeType: "application/json",
77715
+ responseSchema: summarizeDataSchema
77716
+ }
77717
+ });
77718
+ var prompt = (_systemPrompt = systemPrompt(summarizeResponses)) != null ? _systemPrompt : "";
77719
+ return Promise.resolve(model.generateContent(prompt)).then(function (result) {
77720
+ var _result$response;
77721
+
77722
+ var rawResponse = result === null || result === void 0 ? void 0 : (_result$response = result.response) === null || _result$response === void 0 ? void 0 : _result$response.text();
77723
+ var parsedResponse = JSON.parse(rawResponse);
77724
+ setLowEnergyStudents(parsedResponse.lowEnergyStudents || []);
77725
+ setHappyStudents(parsedResponse.happyStudents || []);
77726
+ });
77727
+ }, function (err) {
77728
+ var _err$response, _err$response$data;
77729
+
77730
+ dispatch(setAlert({
77731
+ type: "danger",
77732
+ 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
77733
+ }));
77734
+ });
77735
+
77736
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
77737
+ } catch (e) {
77738
+ return Promise.reject(e);
77739
+ }
77740
+ };
77741
+
77742
+ return {
77743
+ askGeminiAI: askGeminiAI,
77744
+ lowEnergyStudents: lowEnergyStudents,
77745
+ happyStudents: happyStudents
77746
+ };
77747
+ };
77748
+
77749
+ var SummarizeIcon = function SummarizeIcon() {
77750
+ return React__default.createElement("svg", {
77751
+ width: "34",
77752
+ height: "23",
77753
+ viewBox: "0 0 34 23",
77754
+ fill: "none",
77755
+ xmlns: "http://www.w3.org/2000/svg"
77756
+ }, React__default.createElement("path", {
77757
+ d: "M4.55029 2.54133C4.55029 2.2868 4.75663 2.08046 5.01117 2.08046H32.4766C32.7542 2.08046 32.9689 2.32414 32.9338 2.59955L30.5144 21.5967C30.4851 21.8268 30.2893 21.9993 30.0572 21.9993H5.0112C4.75667 21.9993 4.55033 21.793 4.55033 21.5385L4.55029 2.54133Z",
77758
+ fill: "#242424",
77759
+ stroke: "#242424",
77760
+ strokeWidth: "1.5"
77761
+ }), React__default.createElement("path", {
77762
+ d: "M1.09091 1.5377C1.04336 1.25646 1.2601 1 1.54533 1H8.79344C8.991 1 9.16658 1.12591 9.22995 1.31303L10.1746 4.10203C10.238 4.28914 10.4135 4.41505 10.6111 4.41505H26.5365C26.7558 4.41505 26.9448 4.56968 26.9882 4.78471L30.3525 21.4479C30.4102 21.7333 30.192 22 29.9008 22H4.93991C4.71503 22 4.52298 21.8377 4.48549 21.616L1.09091 1.5377Z",
77763
+ fill: "white",
77764
+ stroke: "#242424",
77765
+ strokeWidth: "1.5"
77766
+ }), React__default.createElement("rect", {
77767
+ x: "5.95801",
77768
+ y: "15.3038",
77769
+ width: "8.97068",
77770
+ height: "1.1628",
77771
+ rx: "0.581398",
77772
+ fill: "#242424"
77773
+ }), React__default.createElement("rect", {
77774
+ x: "6.3833",
77775
+ y: "17.6296",
77776
+ width: "8.97068",
77777
+ height: "1.1628",
77778
+ rx: "0.581398",
77779
+ fill: "#242424"
77780
+ }));
77781
+ };
77782
+
77783
+ var UnderstandIcon = function UnderstandIcon() {
77784
+ return React__default.createElement("svg", {
77785
+ width: "34",
77786
+ height: "34",
77787
+ viewBox: "0 0 34 34",
77788
+ fill: "none",
77789
+ xmlns: "http://www.w3.org/2000/svg"
77790
+ }, React__default.createElement("ellipse", {
77791
+ cx: "17.2416",
77792
+ cy: "10.9215",
77793
+ rx: "5.0863",
77794
+ ry: "5.10915",
77795
+ fill: "white",
77796
+ stroke: "#242424",
77797
+ strokeWidth: "1.5"
77798
+ }), React__default.createElement("path", {
77799
+ fillRule: "evenodd",
77800
+ clipRule: "evenodd",
77801
+ d: "M27.5707 21.9242C25.8211 19.6208 23.3251 17.9199 20.4453 17.1859C19.5708 17.899 18.456 18.3263 17.2419 18.3263C16.0277 18.3263 14.913 17.899 14.0385 17.1859C11.1587 17.9199 8.66281 19.6206 6.91316 21.9239C9.28534 25.047 13.0294 27.0623 17.2421 27.0623C21.4546 27.0623 25.1985 25.0472 27.5707 21.9242Z",
77802
+ fill: "#242424"
77803
+ }), React__default.createElement("path", {
77804
+ d: "M27.5707 21.9242L28.1679 22.3779L28.5125 21.9243L28.168 21.4706L27.5707 21.9242ZM20.4453 17.1859L20.6305 16.4591L20.2643 16.3658L19.9713 16.6046L20.4453 17.1859ZM14.0385 17.1859L14.5124 16.6046L14.2195 16.3657L13.8532 16.4591L14.0385 17.1859ZM6.91316 21.9239L6.31593 21.4703L5.97134 21.9239L6.31592 22.3776L6.91316 21.9239ZM28.168 21.4706C26.3186 19.0359 23.6791 17.2362 20.6305 16.4591L20.26 17.9127C22.9711 18.6037 25.3235 20.2057 26.9735 22.3779L28.168 21.4706ZM19.9713 16.6046C19.2255 17.2128 18.2768 17.5763 17.2419 17.5763V19.0763C18.6353 19.0763 19.9161 18.5852 20.9193 17.7671L19.9713 16.6046ZM17.2419 17.5763C16.207 17.5763 15.2582 17.2128 14.5124 16.6046L13.5645 17.7671C14.5677 18.5851 15.8485 19.0763 17.2419 19.0763V17.5763ZM13.8532 16.4591C10.8047 17.2361 8.16527 19.0357 6.31593 21.4703L7.5104 22.3776C9.16036 20.2055 11.5127 18.6036 14.2237 17.9126L13.8532 16.4591ZM6.31592 22.3776C8.82331 25.6787 12.7843 27.8123 17.2421 27.8123V26.3123C13.2746 26.3123 9.74737 24.4154 7.51041 21.4703L6.31592 22.3776ZM17.2421 27.8123C21.6997 27.8123 25.6605 25.6788 28.1679 22.3779L26.9735 21.4706C24.7365 24.4155 21.2094 26.3123 17.2421 26.3123V27.8123Z",
77805
+ fill: "#242424"
77806
+ }), React__default.createElement("path", {
77807
+ d: "M8.01468 1H1V8.04619",
77808
+ stroke: "#242424",
77809
+ strokeWidth: "1.5",
77810
+ strokeLinecap: "round"
77811
+ }), React__default.createElement("path", {
77812
+ d: "M8.01468 33H1V25.9538",
77813
+ stroke: "#242424",
77814
+ strokeWidth: "1.5",
77815
+ strokeLinecap: "round"
77816
+ }), React__default.createElement("path", {
77817
+ d: "M25.9853 1H33V8.04619",
77818
+ stroke: "#242424",
77819
+ strokeWidth: "1.5",
77820
+ strokeLinecap: "round"
77821
+ }), React__default.createElement("path", {
77822
+ d: "M25.9853 33H33V25.9538",
77823
+ stroke: "#242424",
77824
+ strokeWidth: "1.5",
77825
+ strokeLinecap: "round"
77826
+ }));
77827
+ };
77828
+
77829
+ var IdentifyIcon = function IdentifyIcon() {
77830
+ return React__default.createElement("svg", {
77831
+ width: "32",
77832
+ height: "34",
77833
+ viewBox: "0 0 32 34",
77834
+ fill: "none",
77835
+ xmlns: "http://www.w3.org/2000/svg"
77836
+ }, React__default.createElement("ellipse", {
77837
+ cx: "20.3296",
77838
+ cy: "22.2391",
77839
+ rx: "10.6704",
77840
+ ry: "10.7609",
77841
+ fill: "white",
77842
+ stroke: "#242424",
77843
+ strokeWidth: "1.4"
77844
+ }), React__default.createElement("path", {
77845
+ d: "M26.6513 13.5699C24.8818 12.2552 22.6951 11.4782 20.3286 11.4782C16.3772 11.4782 12.9274 13.6443 11.0831 16.8632C10.1768 18.445 9.6582 20.281 9.6582 22.2391C12.6549 22.8982 20.2488 22.0872 26.6513 13.5699Z",
77846
+ fill: "#242424"
77847
+ }), React__default.createElement("path", {
77848
+ d: "M9.6582 22.2391C12.6549 22.8982 20.2488 22.0872 26.6513 13.5699C24.8818 12.2552 22.6951 11.4782 20.3286 11.4782C16.3772 11.4782 12.9274 13.6443 11.0831 16.8632C10.1768 18.445 9.6582 20.281 9.6582 22.2391ZM9.6582 22.2391L10.5056 26.7454",
77849
+ stroke: "#242424",
77850
+ strokeWidth: "1.4"
77851
+ }), React__default.createElement("path", {
77852
+ d: "M29.1172 27.9828C28.1548 26.9837 25.0222 25.3613 22.2507 26.7542",
77853
+ stroke: "#242424",
77854
+ strokeWidth: "1.4",
77855
+ strokeLinecap: "round"
77856
+ }), React__default.createElement("path", {
77857
+ d: "M1 12.1834L4.25181 14.7912C4.45478 14.954 4.75636 14.8471 4.81296 14.5923L5.40844 11.9119C5.46504 11.6571 5.76662 11.5502 5.96959 11.713L9.46747 14.5181",
77858
+ stroke: "#242424",
77859
+ strokeWidth: "1.4"
77860
+ }), React__default.createElement("path", {
77861
+ d: "M8.70996 3.26892L10.1746 7.19015C10.2658 7.43434 10.5807 7.49719 10.7597 7.30692L12.6297 5.3194C12.8087 5.12913 13.1236 5.19198 13.2149 5.43617L14.7903 9.65411",
77862
+ stroke: "#242424",
77863
+ strokeWidth: "1.4"
77864
+ }), React__default.createElement("path", {
77865
+ d: "M19.7646 1L19.3511 5.17685C19.3256 5.43456 19.5773 5.63142 19.821 5.54443L22.4848 4.59376C22.7286 4.50677 22.9802 4.70362 22.9547 4.96134L22.51 9.45368",
77866
+ stroke: "#242424",
77867
+ strokeWidth: "1.4"
77868
+ }));
77869
+ };
77870
+
77871
+ var CALENDAR_OPTIONS$2 = [{
77872
+ label: "This week",
77873
+ startDate: moment().startOf("week").weekday(1).valueOf(),
77874
+ endDate: moment().endOf("week").weekday(7).valueOf()
77875
+ }, {
77876
+ label: "This month",
77877
+ startDate: moment().startOf("month").valueOf(),
77878
+ endDate: moment().endOf("month").valueOf()
77879
+ }, {
77880
+ label: "This school year",
77881
+ startDate: moment().startOf("year").valueOf(),
77882
+ endDate: moment().endOf("year").valueOf()
77883
+ }];
77884
+ var timeKeywords = ["this month", "this week", "this year", "last month", "last week", "last year", "today"];
77885
+ var IDataType;
77886
+
77887
+ (function (IDataType) {
77888
+ IDataType[IDataType["QuestionAnswer"] = 0] = "QuestionAnswer";
77889
+ IDataType[IDataType["Total"] = 1] = "Total";
77890
+ })(IDataType || (IDataType = {}));
77891
+ var THEME = {
77892
+ LIGHT: 'light',
77893
+ DARK: 'dark'
77894
+ };
77895
+ var MessageRole;
77896
+
77897
+ (function (MessageRole) {
77898
+ MessageRole[MessageRole["System"] = 0] = "System";
77899
+ MessageRole[MessageRole["User"] = 1] = "User";
77900
+ MessageRole[MessageRole["Model"] = 2] = "Model";
77901
+ })(MessageRole || (MessageRole = {}));
77902
+
77903
+ var DEFAULT_START_DATE$3 = moment().subtract(2, 'months').startOf("day").valueOf();
77904
+ var DEFAULT_END_DATE$3 = moment().endOf("day").valueOf();
77905
+
77906
+ var useSummarizeResponse = function useSummarizeResponse() {
77907
+ var dispatch = useDispatch();
77908
+
77909
+ var _useState = useState([]),
77910
+ summarizeResponses = _useState[0],
77911
+ setSummarizeResponses = _useState[1];
77912
+
77913
+ var _useState2 = useState({
77914
+ startDate: undefined,
77915
+ endDate: undefined
77916
+ }),
77917
+ filters = _useState2[0],
77918
+ setFilters = _useState2[1];
77919
+
77920
+ var handleChangeFilter = function handleChangeFilter(option) {
77921
+ setFilters({
77922
+ startDate: option.startDate,
77923
+ endDate: option.endDate
77924
+ });
77925
+ };
77926
+
77927
+ var getSummarizeQuestion = useCallback(function () {
77928
+ try {
77929
+ var _temp3 = function _temp3() {
77930
+ dispatch(setLoading(false));
77931
+ };
77932
+
77933
+ dispatch(setLoading(true));
77934
+
77935
+ var _temp4 = _catch(function () {
77936
+ return Promise.resolve(getSummarizeReport({
77937
+ startDate: DEFAULT_START_DATE,
77938
+ endDate: DEFAULT_END_DATE
77939
+ })).then(function (res) {
77940
+ if (res.data) {
77941
+ setSummarizeResponses(res.data.items || []);
77942
+ }
77943
+ });
77944
+ }, function (err) {
77945
+ dispatch(setAlert({
77946
+ type: "danger",
77947
+ message: err.message
77948
+ }));
77949
+ });
77950
+
77951
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
77952
+ } catch (e) {
77953
+ return Promise.reject(e);
77954
+ }
77955
+ }, [filters]);
77956
+ useEffect(function () {
77957
+ if (filters.startDate && filters.endDate) {
77958
+ getSummarizeQuestion();
77959
+ }
77960
+ }, [filters]);
77961
+ return {
77962
+ handleChangeFilter: handleChangeFilter,
77963
+ summarizeResponses: summarizeResponses
77964
+ };
77965
+ };
77966
+
77967
+ var MarioAi = function MarioAi() {
77968
+ var _useGeminiAI = useGeminiAI(),
77969
+ askGeminiAI = _useGeminiAI.askGeminiAI,
77970
+ lowEnergyStudents = _useGeminiAI.lowEnergyStudents,
77971
+ happyStudents = _useGeminiAI.happyStudents;
77972
+
77973
+ var _useSummarizeResponse = useSummarizeResponse(),
77974
+ handleChangeFilter = _useSummarizeResponse.handleChangeFilter,
77975
+ summarizeResponses = _useSummarizeResponse.summarizeResponses;
77976
+
77977
+ var renderStudentList = function renderStudentList(title, students) {
77978
+ return React__default.createElement(Grid, {
77979
+ className: "mt-5"
77980
+ }, React__default.createElement(Typography, null, title), students.map(function (student, index) {
77981
+ return React__default.createElement(Typography, {
77982
+ key: index
77983
+ }, index + 1 + ". " + student);
77984
+ }));
77985
+ };
77986
+
77987
+ return React__default.createElement(Grid, null, React__default.createElement(Grid, {
77988
+ className: "mt-5"
77989
+ }, CALENDAR_OPTIONS$2.map(function (option) {
77990
+ return React__default.createElement(Button$1, {
77991
+ key: option.label,
77992
+ onClick: function onClick() {
77993
+ return handleChangeFilter(option);
77994
+ }
77995
+ }, option.label);
77996
+ }), React__default.createElement(Grid, {
77997
+ className: "my-5"
77998
+ }, React__default.createElement(Typography, null, "Summarize responses:"), summarizeResponses.map(function (response) {
77999
+ return React__default.createElement(Grid, null, React__default.createElement(Typography, null, response.studentName), React__default.createElement(Typography, null, response.answer));
78000
+ })), React__default.createElement(Grid, null, renderStudentList("Students have flagged low energy this week:", lowEnergyStudents), renderStudentList("Students are feeling really happy:", happyStudents)), React__default.createElement(Button$1, {
78001
+ onClick: function onClick() {
78002
+ return askGeminiAI(summarizeResponses);
78003
+ }
78004
+ }, "Generate")));
78005
+ };
78006
+
78007
+ var styles$d = {"ai-mario-container":"_1hAN-","ai-mario":"_U4585","ai-mario-header":"_3H3TX","title-welcome":"_2wizn","title-help-question":"_1uejP","card-data-container":"_wXhYW","card":"_3F1f0","content":"_cB_eW","title":"_30saB","description-card":"_6m3YS","icon":"_gG2mp","go-icon":"_1tJEn","list-prompts":"_1O09T","header":"_1lK2v","see-all":"_1Qk2i","text":"_3qcYP","list-item":"_2DkM3","item":"_1FFC5","background":"_rGovp","left":"_1X7t2","right":"_1w2YZ","opacity-footer":"_4kmno","dot-color":"_6K7Pz","dot-color__top":"_3mOqe","dot-color__bottom":"_1LVOo","ai-mario-chat":"_2eGy1","ai-mario-chat__header":"_1_oTD","go-back":"_u-oqg","chat-title":"_PBH_Y","switch-theme":"_31WqA","item___light-btn":"_3Zheb","item___dark-btn":"_7T1lB","ai-mario-chat__header___dark":"__lhBc","ai-mario-chat__content":"_2h1fv","content-container":"_3kxy-","chat-box":"_3gjP5","chat-box__content":"_2x_-F","name":"_2bqyW","message":"_1N1T3","option":"_31bf9","option__item":"_7cV8X","loader":"_2YD7M","loader__dot":"_23N4j","dot":"_3St_4","time":"_CjCyy","chat-box__user":"_ZC3ml","chat-box__user-container":"_2oBqf","ai-mario-chat__content___dark":"_1r1Jl","action-wrapper":"_2o38p","action-item":"_1IcP8","bracketed-input":"_206DV","bracketed-input-block":"_1A9xm","icon-input":"_1Lwom"};
78008
+
78009
+ var ArrowRightIcon = function ArrowRightIcon() {
78010
+ return React__default.createElement("svg", {
78011
+ width: "16",
78012
+ height: "16",
78013
+ viewBox: "0 0 16 16",
78014
+ fill: "none",
78015
+ xmlns: "http://www.w3.org/2000/svg"
78016
+ }, React__default.createElement("path", {
78017
+ d: "M8.75036 3C8.55112 3 8.36007 3.07928 8.21936 3.22034C8.0783 3.36105 7.99902 3.5521 7.99902 3.75134C7.99902 3.95058 8.0783 4.14163 8.21936 4.28234L11.4397 7.50146H2.75C2.33579 7.50146 2 7.83725 2 8.25146C2 8.66568 2.33579 9.00146 2.75 9.00146H11.4395L8.21936 12.2203C7.9261 12.5136 7.9261 12.9891 8.21936 13.2823C8.51263 13.5756 8.9881 13.5756 9.28136 13.2823L13.7814 8.78234C13.9224 8.64163 14.0017 8.45058 14.0017 8.25134C14.0017 8.0521 13.9224 7.86105 13.7814 7.72034L9.28136 3.22034C9.14066 3.07928 8.9496 3 8.75036 3Z",
78018
+ fill: "#316CD9"
78019
+ }));
78020
+ };
78021
+
78022
+ var CardHeader = function CardHeader(_ref) {
78023
+ var id = _ref.id,
78024
+ name = _ref.name,
78025
+ description = _ref.description,
78026
+ icon = _ref.icon,
78027
+ goToChat = _ref.goToChat;
78028
+ return React__default.createElement("button", {
78029
+ type: 'button',
78030
+ onClick: function onClick() {
78031
+ goToChat(id);
78032
+ },
78033
+ className: styles$d['card']
78034
+ }, React__default.createElement("div", {
78035
+ className: styles$d['content']
78036
+ }, React__default.createElement("div", {
78037
+ className: styles$d['title'],
78038
+ dangerouslySetInnerHTML: {
78039
+ __html: name
78040
+ }
78041
+ }), React__default.createElement("div", {
78042
+ className: styles$d['description-card'],
78043
+ dangerouslySetInnerHTML: {
78044
+ __html: description
78045
+ }
78046
+ })), React__default.createElement("div", {
78047
+ className: styles$d['icon']
78048
+ }, icon), React__default.createElement("div", {
78049
+ className: styles$d['go-icon']
78050
+ }, React__default.createElement(ArrowRightIcon, null)));
78051
+ };
78052
+
78053
+ var HeaderAI = function HeaderAI(_ref) {
78054
+ var prompts = _ref.prompts,
78055
+ goToChat = _ref.goToChat,
78056
+ generateIcons = _ref.generateIcons;
78057
+ return React__default.createElement("div", {
78058
+ className: styles$d['ai-mario-header']
78059
+ }, React__default.createElement("div", {
78060
+ className: styles$d['title-welcome']
78061
+ }, "Hello, Kathryn. I'm your AI assistant created by MARIO."), React__default.createElement("div", {
78062
+ className: styles$d['title-help-question']
78063
+ }, "How can I help you today?"), React__default.createElement("div", {
78064
+ className: styles$d['card-data-container']
78065
+ }, prompts.map(function (r) {
78066
+ return React__default.createElement(CardHeader, {
78067
+ key: r.name,
78068
+ id: r.id,
78069
+ name: r.name,
78070
+ description: r.description,
78071
+ icon: generateIcons(r.name),
78072
+ goToChat: goToChat
78073
+ });
78074
+ })));
78075
+ };
78076
+
78077
+ var MoreIcon = function MoreIcon() {
78078
+ return React__default.createElement("svg", {
78079
+ width: "24",
78080
+ height: "24",
78081
+ viewBox: "0 0 24 24",
78082
+ fill: "none",
78083
+ xmlns: "http://www.w3.org/2000/svg"
78084
+ }, React__default.createElement("g", {
78085
+ opacity: "0.4"
78086
+ }, React__default.createElement("path", {
78087
+ d: "M12 19.2693C11.5875 19.2693 11.2344 19.1224 10.9408 18.8285C10.6469 18.5349 10.5 18.1818 10.5 17.7693C10.5 17.3568 10.6469 17.0036 10.9408 16.7098C11.2344 16.4161 11.5875 16.2693 12 16.2693C12.4125 16.2693 12.7656 16.4161 13.0592 16.7098C13.3531 17.0036 13.5 17.3568 13.5 17.7693C13.5 18.1818 13.3531 18.5349 13.0592 18.8285C12.7656 19.1224 12.4125 19.2693 12 19.2693ZM12 13.5C11.5875 13.5 11.2344 13.3531 10.9408 13.0593C10.6469 12.7656 10.5 12.4125 10.5 12C10.5 11.5875 10.6469 11.2344 10.9408 10.9408C11.2344 10.6469 11.5875 10.5 12 10.5C12.4125 10.5 12.7656 10.6469 13.0592 10.9408C13.3531 11.2344 13.5 11.5875 13.5 12C13.5 12.4125 13.3531 12.7656 13.0592 13.0593C12.7656 13.3531 12.4125 13.5 12 13.5ZM12 7.73077C11.5875 7.73077 11.2344 7.58394 10.9408 7.29027C10.6469 6.99644 10.5 6.64327 10.5 6.23077C10.5 5.81827 10.6469 5.46519 10.9408 5.17152C11.2344 4.87769 11.5875 4.73077 12 4.73077C12.4125 4.73077 12.7656 4.87769 13.0592 5.17152C13.3531 5.46519 13.5 5.81827 13.5 6.23077C13.5 6.64327 13.3531 6.99644 13.0592 7.29027C12.7656 7.58394 12.4125 7.73077 12 7.73077Z",
78088
+ fill: "#242424"
78089
+ })));
78090
+ };
77644
78091
 
77645
78092
  var PopoverCustom$1 = styled$1(Popover)(function () {
77646
78093
  return {
@@ -77650,6 +78097,1097 @@ var PopoverCustom$1 = styled$1(Popover)(function () {
77650
78097
  };
77651
78098
  });
77652
78099
 
78100
+ var ListPrompts = function ListPrompts(_ref) {
78101
+ var maxHeight = _ref.maxHeight,
78102
+ historyPrompts = _ref.historyPrompts,
78103
+ handleClickAction = _ref.handleClickAction,
78104
+ handleCloseAction = _ref.handleCloseAction,
78105
+ anchorEl = _ref.anchorEl,
78106
+ popoverId = _ref.popoverId,
78107
+ openPopover = _ref.openPopover,
78108
+ removeData = _ref.removeData,
78109
+ selectId = _ref.selectId,
78110
+ goToViewHistory = _ref.goToViewHistory,
78111
+ generateIcons = _ref.generateIcons;
78112
+ return React__default.createElement("div", {
78113
+ className: styles$d['list-prompts'],
78114
+ style: {
78115
+ maxHeight: maxHeight / 2 + 25
78116
+ }
78117
+ }, React__default.createElement("div", {
78118
+ className: styles$d['header']
78119
+ }, React__default.createElement("div", {
78120
+ className: styles$d['title']
78121
+ }, "Last Prompts"), React__default.createElement("button", {
78122
+ type: 'button',
78123
+ className: styles$d['see-all']
78124
+ }, React__default.createElement("div", {
78125
+ className: styles$d['text'],
78126
+ onClick: function onClick() {
78127
+ console.log('ok');
78128
+ }
78129
+ }, "See all"), React__default.createElement(ArrowRightIcon, null))), React__default.createElement("div", {
78130
+ className: styles$d['list-item']
78131
+ }, historyPrompts.map(function (prompt) {
78132
+ return React__default.createElement("div", {
78133
+ key: prompt.name,
78134
+ className: styles$d['item']
78135
+ }, React__default.createElement("div", {
78136
+ className: styles$d['background']
78137
+ }), React__default.createElement("div", {
78138
+ className: styles$d['left']
78139
+ }, React__default.createElement("div", {
78140
+ className: styles$d['icon']
78141
+ }, generateIcons(prompt.name)), React__default.createElement("div", {
78142
+ className: styles$d['text']
78143
+ }, prompt.name)), React__default.createElement("div", {
78144
+ className: styles$d['right']
78145
+ }, React__default.createElement("div", {
78146
+ className: styles$d['text']
78147
+ }, prompt.createdAt), React__default.createElement("button", {
78148
+ type: 'button',
78149
+ className: styles$d['icon'],
78150
+ onClick: function onClick(event) {
78151
+ return handleClickAction(event, prompt.id);
78152
+ }
78153
+ }, React__default.createElement(MoreIcon, null))));
78154
+ })), React__default.createElement("div", {
78155
+ className: styles$d['opacity-footer']
78156
+ }), React__default.createElement(PopoverCustom$1, {
78157
+ id: popoverId,
78158
+ open: openPopover,
78159
+ anchorEl: anchorEl,
78160
+ onClose: function onClose() {
78161
+ return handleCloseAction();
78162
+ },
78163
+ anchorOrigin: {
78164
+ vertical: "top",
78165
+ horizontal: "left"
78166
+ },
78167
+ transformOrigin: {
78168
+ vertical: "top",
78169
+ horizontal: "left"
78170
+ }
78171
+ }, React__default.createElement("ul", {
78172
+ className: "" + styles$d["action-wrapper"]
78173
+ }, React__default.createElement("li", {
78174
+ onClick: function onClick() {
78175
+ goToViewHistory(selectId);
78176
+ },
78177
+ className: styles$d["action-item"] + " text-nowrap"
78178
+ }, "view"), React__default.createElement("li", {
78179
+ onClick: function onClick() {
78180
+ removeData(selectId);
78181
+ },
78182
+ className: styles$d["action-item"] + " text-nowrap"
78183
+ }, "remove"))));
78184
+ };
78185
+
78186
+ var PROMPT_URL = BASE_URL + "/api/Prompt";
78187
+ var getPrompt = function getPrompt() {
78188
+ return api.get("" + PROMPT_URL);
78189
+ };
78190
+ var getById$p = function getById(id) {
78191
+ return api.get(PROMPT_URL + "/" + id);
78192
+ };
78193
+ var getHistoryPrompt = function getHistoryPrompt() {
78194
+ return api.get(PROMPT_URL + "/history");
78195
+ };
78196
+ var getSessionAnswer = function getSessionAnswer(params) {
78197
+ return api.get(PROMPT_URL + "/session-data", {
78198
+ params: params
78199
+ });
78200
+ };
78201
+ var createHistory = function createHistory(data) {
78202
+ return api.post(PROMPT_URL + "/create-history", data);
78203
+ };
78204
+ var removeHistory = function removeHistory(id) {
78205
+ return api["delete"](PROMPT_URL + "/history/" + id);
78206
+ };
78207
+ var getHistoryById = function getHistoryById(id) {
78208
+ return api.get(PROMPT_URL + "/history/" + id);
78209
+ };
78210
+ var getTotalSession = function getTotalSession(params) {
78211
+ return api.get(PROMPT_URL + "/session-total-data", {
78212
+ params: params
78213
+ });
78214
+ };
78215
+
78216
+ var useAIMario = function useAIMario() {
78217
+ var history = useHistory();
78218
+ var dispatch = useDispatch();
78219
+ var isOpenSideBar = useSelector(function (state) {
78220
+ var _state$common;
78221
+
78222
+ return (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.menuBar;
78223
+ });
78224
+
78225
+ var _useState = useState(null),
78226
+ anchorEl = _useState[0],
78227
+ setAnchorEl = _useState[1];
78228
+
78229
+ var aiMarioRef = useRef(null);
78230
+
78231
+ var _useState2 = useState(0),
78232
+ height = _useState2[0],
78233
+ setHeight = _useState2[1];
78234
+
78235
+ var _useState3 = useState([]),
78236
+ prompts = _useState3[0],
78237
+ setPrompts = _useState3[1];
78238
+
78239
+ var _useState4 = useState([]),
78240
+ historyPrompts = _useState4[0],
78241
+ setHistoryPrompts = _useState4[1];
78242
+
78243
+ var _useState5 = useState(null),
78244
+ selectId = _useState5[0],
78245
+ setSelectId = _useState5[1];
78246
+
78247
+ var handleClickAction = function handleClickAction(event, id) {
78248
+ setAnchorEl(event.currentTarget);
78249
+ setSelectId(id);
78250
+ };
78251
+
78252
+ var openPopover = Boolean(anchorEl);
78253
+ var popoverId = openPopover ? "simple-popover" : undefined;
78254
+
78255
+ var handleCloseAction = function handleCloseAction() {
78256
+ setAnchorEl(null);
78257
+ };
78258
+
78259
+ var goToChat = function goToChat(id) {
78260
+ history.push("/admin/mario-ai/chat/" + id);
78261
+ };
78262
+
78263
+ var goToViewHistory = function goToViewHistory(id) {
78264
+ history.push("/admin/mario-ai/history/" + id);
78265
+ };
78266
+
78267
+ var getAllPrompt = useCallback(function () {
78268
+ try {
78269
+ var _temp3 = function _temp3() {
78270
+ dispatch(setLoading(false));
78271
+ };
78272
+
78273
+ dispatch(setLoading(true));
78274
+
78275
+ var _temp4 = _catch(function () {
78276
+ return Promise.resolve(getPrompt()).then(function (res) {
78277
+ if (res.data) {
78278
+ setPrompts(res.data || []);
78279
+ }
78280
+ });
78281
+ }, function (err) {
78282
+ dispatch(setAlert({
78283
+ type: "danger",
78284
+ message: err.message
78285
+ }));
78286
+ });
78287
+
78288
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
78289
+ } catch (e) {
78290
+ return Promise.reject(e);
78291
+ }
78292
+ }, []);
78293
+ var getAllHistoryPrompt = useCallback(function () {
78294
+ try {
78295
+ var _temp7 = function _temp7() {
78296
+ dispatch(setLoading(false));
78297
+ };
78298
+
78299
+ dispatch(setLoading(true));
78300
+
78301
+ var _temp8 = _catch(function () {
78302
+ return Promise.resolve(getHistoryPrompt()).then(function (res) {
78303
+ if (res.data) {
78304
+ setHistoryPrompts(res.data || []);
78305
+ }
78306
+ });
78307
+ }, function (err) {
78308
+ dispatch(setAlert({
78309
+ type: "danger",
78310
+ message: err.message
78311
+ }));
78312
+ });
78313
+
78314
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
78315
+ } catch (e) {
78316
+ return Promise.reject(e);
78317
+ }
78318
+ }, []);
78319
+ var removeData = useCallback(function (id) {
78320
+ try {
78321
+ dispatch(setModal({
78322
+ isOpen: true,
78323
+ type: "warning",
78324
+ message: "Do you want to delete this history?",
78325
+ onConfirm: function () {
78326
+ try {
78327
+ var _temp11 = function _temp11() {
78328
+ dispatch(setLoading(false));
78329
+ };
78330
+
78331
+ dispatch(setLoading(true));
78332
+
78333
+ var _temp12 = _catch(function () {
78334
+ return Promise.resolve(removeHistory(id)).then(function () {
78335
+ return Promise.resolve(getAllHistoryPrompt()).then(function () {
78336
+ dispatch(setAlert({
78337
+ type: "success",
78338
+ message: "Delete history successfully"
78339
+ }));
78340
+ });
78341
+ });
78342
+ }, function (err) {
78343
+ var _err$response;
78344
+
78345
+ dispatch(setAlert({
78346
+ type: "danger",
78347
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : _err$response.data) || err.message
78348
+ }));
78349
+ });
78350
+
78351
+ return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
78352
+ } catch (e) {
78353
+ return Promise.reject(e);
78354
+ }
78355
+ }
78356
+ }));
78357
+ return Promise.resolve();
78358
+ } catch (e) {
78359
+ return Promise.reject(e);
78360
+ }
78361
+ }, []);
78362
+ useEffect(function () {
78363
+ getAllPrompt();
78364
+ getAllHistoryPrompt();
78365
+
78366
+ if (aiMarioRef.current) {
78367
+ var _height = aiMarioRef.current.offsetHeight;
78368
+ setHeight(_height);
78369
+ }
78370
+ }, []);
78371
+ return {
78372
+ handleClickAction: handleClickAction,
78373
+ handleCloseAction: handleCloseAction,
78374
+ anchorEl: anchorEl,
78375
+ popoverId: popoverId,
78376
+ openPopover: openPopover,
78377
+ goToChat: goToChat,
78378
+ isOpenSideBar: isOpenSideBar,
78379
+ height: height,
78380
+ aiMarioRef: aiMarioRef,
78381
+ prompts: prompts,
78382
+ historyPrompts: historyPrompts,
78383
+ removeData: removeData,
78384
+ selectId: selectId,
78385
+ goToViewHistory: goToViewHistory
78386
+ };
78387
+ };
78388
+
78389
+ var AIMario = function AIMario() {
78390
+ var _useAIMario = useAIMario(),
78391
+ isOpenSideBar = _useAIMario.isOpenSideBar,
78392
+ height = _useAIMario.height,
78393
+ aiMarioRef = _useAIMario.aiMarioRef,
78394
+ prompts = _useAIMario.prompts,
78395
+ goToChat = _useAIMario.goToChat,
78396
+ historyPrompts = _useAIMario.historyPrompts,
78397
+ handleClickAction = _useAIMario.handleClickAction,
78398
+ handleCloseAction = _useAIMario.handleCloseAction,
78399
+ anchorEl = _useAIMario.anchorEl,
78400
+ popoverId = _useAIMario.popoverId,
78401
+ openPopover = _useAIMario.openPopover,
78402
+ removeData = _useAIMario.removeData,
78403
+ selectId = _useAIMario.selectId,
78404
+ goToViewHistory = _useAIMario.goToViewHistory;
78405
+
78406
+ var generateIcons = function generateIcons(title) {
78407
+ var index = prompts.findIndex(function (r) {
78408
+ return r.name == title;
78409
+ });
78410
+
78411
+ switch (index) {
78412
+ case 0:
78413
+ return React__default.createElement(SummarizeIcon, null);
78414
+
78415
+ case 1:
78416
+ return React__default.createElement(UnderstandIcon, null);
78417
+
78418
+ case 2:
78419
+ return React__default.createElement(IdentifyIcon, null);
78420
+
78421
+ default:
78422
+ return React__default.createElement(IdentifyIcon, null);
78423
+ }
78424
+ };
78425
+
78426
+ return React__default.createElement("div", {
78427
+ className: styles$d["ai-mario-container"],
78428
+ style: isOpenSideBar ? {
78429
+ width: "calc(100vw - 300px)"
78430
+ } : {}
78431
+ }, React__default.createElement("div", {
78432
+ className: styles$d["ai-mario"],
78433
+ id: "ai_mario",
78434
+ ref: aiMarioRef
78435
+ }, React__default.createElement(HeaderAI, {
78436
+ prompts: prompts,
78437
+ goToChat: goToChat,
78438
+ generateIcons: generateIcons
78439
+ }), React__default.createElement(ListPrompts, {
78440
+ maxHeight: height,
78441
+ historyPrompts: historyPrompts,
78442
+ handleClickAction: handleClickAction,
78443
+ handleCloseAction: handleCloseAction,
78444
+ anchorEl: anchorEl,
78445
+ popoverId: popoverId,
78446
+ openPopover: openPopover,
78447
+ removeData: removeData,
78448
+ selectId: selectId,
78449
+ goToViewHistory: goToViewHistory,
78450
+ generateIcons: generateIcons
78451
+ }), React__default.createElement("div", {
78452
+ className: styles$d["dot-color"] + " " + styles$d["dot-color__top"]
78453
+ }), React__default.createElement("div", {
78454
+ className: styles$d["dot-color"] + " " + styles$d["dot-color__bottom"]
78455
+ })));
78456
+ };
78457
+
78458
+ var ArrowBackIcon = function ArrowBackIcon(_ref) {
78459
+ var _ref$color = _ref.color,
78460
+ color = _ref$color === void 0 ? '#242424' : _ref$color;
78461
+ return React__default.createElement("svg", {
78462
+ width: "16",
78463
+ height: "16",
78464
+ viewBox: "0 0 16 16",
78465
+ fill: "none",
78466
+ xmlns: "http://www.w3.org/2000/svg"
78467
+ }, React__default.createElement("path", {
78468
+ d: "M7.24964 3C7.44888 3 7.63993 3.07928 7.78064 3.22034C7.9217 3.36105 8.00098 3.5521 8.00098 3.75134C8.00098 3.95058 7.9217 4.14163 7.78064 4.28234L4.5603 7.50146H13.25C13.6642 7.50146 14 7.83725 14 8.25146C14 8.66568 13.6642 9.00146 13.25 9.00146H4.56054L7.78064 12.2203C8.0739 12.5136 8.0739 12.9891 7.78064 13.2823C7.48737 13.5756 7.0119 13.5756 6.71864 13.2823L2.21864 8.78234C2.07757 8.64163 1.99829 8.45058 1.99829 8.25134C1.99829 8.0521 2.07757 7.86105 2.21864 7.72034L6.71864 3.22034C6.85934 3.07928 7.0504 3 7.24964 3Z",
78469
+ fill: color
78470
+ }));
78471
+ };
78472
+
78473
+ var LightIcon = function LightIcon(_ref) {
78474
+ var _ref$color = _ref.color,
78475
+ color = _ref$color === void 0 ? '#242424' : _ref$color;
78476
+ return React__default.createElement("svg", {
78477
+ width: "20",
78478
+ height: "20",
78479
+ viewBox: "0 0 20 20",
78480
+ fill: "none",
78481
+ xmlns: "http://www.w3.org/2000/svg"
78482
+ }, React__default.createElement("path", {
78483
+ d: "M10.0002 12.4001C10.6669 12.4001 11.2335 12.1667 11.7002 11.7001C12.1669 11.2334 12.4002 10.6667 12.4002 10.0001C12.4002 9.33341 12.1669 8.76674 11.7002 8.30007C11.2335 7.83341 10.6669 7.60007 10.0002 7.60007C9.33353 7.60007 8.76686 7.83341 8.3002 8.30007C7.83353 8.76674 7.60019 9.33341 7.60019 10.0001C7.60019 10.6667 7.83353 11.2334 8.3002 11.7001C8.76686 12.1667 9.33353 12.4001 10.0002 12.4001ZM10.0002 14.0001C8.89353 14.0001 7.9502 13.6101 7.1702 12.8301C6.3902 12.0501 6.0002 11.1067 6.0002 10.0001C6.0002 8.89341 6.3902 7.95007 7.1702 7.17007C7.9502 6.39007 8.89353 6.00007 10.0002 6.00007C11.1069 6.00007 12.0502 6.39007 12.8302 7.17007C13.6102 7.95007 14.0002 8.89341 14.0002 10.0001C14.0002 11.1067 13.6102 12.0501 12.8302 12.8301C12.0502 13.6101 11.1069 14.0001 10.0002 14.0001ZM4.4002 10.8001H1.2002V9.20007H4.4002V10.8001ZM18.8002 10.8001H15.6002V9.20007H18.8002V10.8001ZM9.2002 4.40007V1.20007H10.8002V4.40007H9.2002ZM9.2002 18.8001V15.6001H10.8002V18.8001H9.2002ZM5.5202 6.60007L3.5002 4.66007L4.6402 3.48007L6.56019 5.48007L5.5202 6.60007ZM15.3602 16.5201L13.4202 14.5001L14.4802 13.4001L16.5002 15.3401L15.3602 16.5201ZM13.4002 5.52007L15.3402 3.50007L16.5202 4.64007L14.5202 6.56007L13.4002 5.52007ZM3.4802 15.3601L5.5002 13.4201L6.6002 14.4801L4.6602 16.5001L3.4802 15.3601Z",
78484
+ fill: color
78485
+ }));
78486
+ };
78487
+
78488
+ var DarkIcon = function DarkIcon(_ref) {
78489
+ var _ref$color = _ref.color,
78490
+ color = _ref$color === void 0 ? '#242424' : _ref$color;
78491
+ return React__default.createElement("svg", {
78492
+ width: "20",
78493
+ height: "20",
78494
+ viewBox: "0 0 20 20",
78495
+ fill: "none",
78496
+ xmlns: "http://www.w3.org/2000/svg"
78497
+ }, React__default.createElement("g", null, React__default.createElement("path", {
78498
+ d: "M10.0008 17.2C8.00078 17.2 6.30078 16.5 4.90078 15.1C3.50078 13.7 2.80078 12 2.80078 10C2.80078 8.00005 3.50078 6.30005 4.90078 4.90005C6.30078 3.50005 8.00078 2.80005 10.0008 2.80005C10.1874 2.80005 10.3708 2.80672 10.5508 2.82005C10.7308 2.83338 10.9074 2.85338 11.0808 2.88005C10.5341 3.26672 10.0974 3.77005 9.77078 4.39005C9.44412 5.01005 9.28078 5.68005 9.28078 6.40005C9.28078 7.60005 9.70078 8.62005 10.5408 9.46005C11.3808 10.3 12.4008 10.72 13.6008 10.72C14.3341 10.72 15.0074 10.5567 15.6208 10.23C16.2341 9.90338 16.7341 9.46672 17.1208 8.92005C17.1474 9.09338 17.1674 9.27005 17.1808 9.45005C17.1941 9.63005 17.2008 9.81338 17.2008 10C17.2008 12 16.5008 13.7 15.1008 15.1C13.7008 16.5 12.0008 17.2 10.0008 17.2ZM10.0008 15.6C11.1741 15.6 12.2274 15.2767 13.1608 14.63C14.0941 13.9834 14.7741 13.14 15.2008 12.1C14.9341 12.1667 14.6674 12.22 14.4008 12.26C14.1341 12.3 13.8674 12.32 13.6008 12.32C11.9608 12.32 10.5641 11.7434 9.41078 10.59C8.25745 9.43672 7.68078 8.04005 7.68078 6.40005C7.68078 6.13338 7.70078 5.86672 7.74078 5.60005C7.78078 5.33338 7.83412 5.06672 7.90078 4.80005C6.86078 5.22672 6.01745 5.90672 5.37078 6.84005C4.72411 7.77338 4.40078 8.82672 4.40078 10C4.40078 11.5467 4.94745 12.8667 6.04078 13.96C7.13411 15.0534 8.45411 15.6 10.0008 15.6Z",
78499
+ fill: color
78500
+ })));
78501
+ };
78502
+
78503
+ var ChatHeader = function ChatHeader(_ref) {
78504
+ var theme = _ref.theme,
78505
+ setTheme = _ref.setTheme,
78506
+ goBack = _ref.goBack,
78507
+ isOpenSideBar = _ref.isOpenSideBar,
78508
+ name = _ref.name;
78509
+ return React__default.createElement("div", {
78510
+ className: styles$d['ai-mario-chat__header'] + " " + (theme === THEME.DARK ? styles$d['ai-mario-chat__header___dark'] : ''),
78511
+ style: isOpenSideBar ? {} : {
78512
+ width: '100%'
78513
+ }
78514
+ }, React__default.createElement("button", {
78515
+ type: 'button',
78516
+ className: styles$d['go-back'],
78517
+ onClick: goBack
78518
+ }, React__default.createElement(ArrowBackIcon, {
78519
+ color: theme === THEME.DARK ? '#fff' : '#242424'
78520
+ })), React__default.createElement("div", {
78521
+ className: styles$d['chat-title']
78522
+ }, name), React__default.createElement("button", {
78523
+ className: styles$d['switch-theme'],
78524
+ onClick: function onClick() {
78525
+ return setTheme(theme === THEME.LIGHT ? THEME.DARK : THEME.LIGHT);
78526
+ }
78527
+ }, React__default.createElement("div", {
78528
+ className: styles$d['item'] + " " + styles$d['item___light-btn'],
78529
+ style: theme === THEME.LIGHT ? {
78530
+ background: '#fff',
78531
+ color: '#242424'
78532
+ } : {
78533
+ background: 'transparent',
78534
+ color: '#7a778b'
78535
+ }
78536
+ }, React__default.createElement(LightIcon, {
78537
+ color: theme === THEME.DARK ? '#7a778b' : '#242424'
78538
+ })), React__default.createElement("div", {
78539
+ className: styles$d['item'] + " " + styles$d['item___dark-btn'],
78540
+ style: theme === THEME.DARK ? {
78541
+ background: '#fff',
78542
+ color: '#242424'
78543
+ } : {
78544
+ color: '#a6a6a6'
78545
+ }
78546
+ }, React__default.createElement(DarkIcon, {
78547
+ color: theme === THEME.DARK ? '#242424' : '#a6a6a6'
78548
+ }))));
78549
+ };
78550
+
78551
+ var useAIChat = function useAIChat() {
78552
+ var dispatch = useDispatch();
78553
+ var history = useHistory();
78554
+
78555
+ var _useParams = useParams(),
78556
+ id = _useParams.id;
78557
+
78558
+ var _useState = useState("light"),
78559
+ theme = _useState[0],
78560
+ setTheme = _useState[1];
78561
+
78562
+ var isOpenSideBar = useSelector(function (state) {
78563
+ var _state$common;
78564
+
78565
+ return (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.menuBar;
78566
+ });
78567
+
78568
+ var _useState2 = useState(),
78569
+ prompt = _useState2[0],
78570
+ setPrompt = _useState2[1];
78571
+
78572
+ var _useState3 = useState([]),
78573
+ chats = _useState3[0],
78574
+ setChats = _useState3[1];
78575
+
78576
+ var _useState4 = useState(null),
78577
+ historyId = _useState4[0],
78578
+ setHistoryId = _useState4[1];
78579
+
78580
+ var _useState5 = useState([]),
78581
+ answers = _useState5[0],
78582
+ setAnswers = _useState5[1];
78583
+
78584
+ var _useState6 = useState(""),
78585
+ inputString = _useState6[0],
78586
+ setInputString = _useState6[1];
78587
+
78588
+ var _useState7 = useState({
78589
+ checkInCompleteCount: 0,
78590
+ checkInCount: 0,
78591
+ oneToOneCompleteCount: 0,
78592
+ oneToOneCount: 0,
78593
+ studentNotDoneCheckIns: [],
78594
+ studentNotDoneConversations: []
78595
+ }),
78596
+ totalCheckIns = _useState7[0],
78597
+ setTotalCheckIns = _useState7[1];
78598
+
78599
+ var goBack = function goBack() {
78600
+ history.goBack();
78601
+ };
78602
+
78603
+ var getBracketedText = function getBracketedText(text) {
78604
+ return (text.match(/\[\[(.*?)\]\]/) || [])[1] || null;
78605
+ };
78606
+
78607
+ var submitPromptMessage = function submitPromptMessage() {
78608
+ if (!inputString) return;
78609
+ setChats(chats.map(function (r) {
78610
+ return _extends({}, r, {
78611
+ message: r.message.replace(/\[\[(.*?)\]\]/, inputString)
78612
+ });
78613
+ }));
78614
+ };
78615
+
78616
+ var getPromptDetail = useCallback(function () {
78617
+ try {
78618
+ var _temp3 = function _temp3() {
78619
+ dispatch(setLoading(false));
78620
+ };
78621
+
78622
+ dispatch(setLoading(true));
78623
+
78624
+ var _temp4 = _catch(function () {
78625
+ return Promise.resolve(getById$p(parseInt(id))).then(function (res) {
78626
+ var promptResponse = res.data;
78627
+
78628
+ if (promptResponse) {
78629
+ var _promptResponse$messa;
78630
+
78631
+ setPrompt(promptResponse);
78632
+ var regex = /\{{(.*?)}}/;
78633
+ setChats((promptResponse === null || promptResponse === void 0 ? void 0 : (_promptResponse$messa = promptResponse.messages) === null || _promptResponse$messa === void 0 ? void 0 : _promptResponse$messa.filter(function (i) {
78634
+ var _i$role;
78635
+
78636
+ return ((_i$role = i.role) === null || _i$role === void 0 ? void 0 : _i$role.toString()) != "System";
78637
+ }).map(function (r) {
78638
+ var _r$role, _r$message, _r$message$match, _r$message$match$, _r$message$match$$spl, _r$message$match$$spl2;
78639
+
78640
+ return {
78641
+ message: r.message.replace(/\$\{\{/g, ""),
78642
+ text: r.message.replace(/\$\{\{/g, ""),
78643
+ time: "",
78644
+ isUser: ((_r$role = r.role) === null || _r$role === void 0 ? void 0 : _r$role.toString()) == "User",
78645
+ options: (_r$message = r.message) === null || _r$message === void 0 ? void 0 : (_r$message$match = _r$message.match(regex)) === null || _r$message$match === void 0 ? void 0 : (_r$message$match$ = _r$message$match[1]) === null || _r$message$match$ === void 0 ? void 0 : (_r$message$match$$spl = _r$message$match$.split(" || ")) === null || _r$message$match$$spl === void 0 ? void 0 : (_r$message$match$$spl2 = _r$message$match$$spl[1]) === null || _r$message$match$$spl2 === void 0 ? void 0 : _r$message$match$$spl2.split("/")
78646
+ };
78647
+ })) || []);
78648
+ }
78649
+ });
78650
+ }, function (err) {
78651
+ dispatch(setAlert({
78652
+ type: "danger",
78653
+ message: err.message
78654
+ }));
78655
+ });
78656
+
78657
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
78658
+ } catch (e) {
78659
+ return Promise.reject(e);
78660
+ }
78661
+ }, [id]);
78662
+
78663
+ var handleChoiceOption = function handleChoiceOption(option) {
78664
+ try {
78665
+ var responses = chats.concat([{
78666
+ isUser: true,
78667
+ message: option,
78668
+ time: ""
78669
+ }, {
78670
+ time: "",
78671
+ isUser: false,
78672
+ message: ""
78673
+ }]);
78674
+ setChats(responses);
78675
+ var startDate;
78676
+ var endDate;
78677
+
78678
+ switch (option.toLowerCase()) {
78679
+ case "this month":
78680
+ startDate = !(prompt !== null && prompt !== void 0 && prompt.isCompareDataTime) ? moment().startOf("month").valueOf() : moment().subtract(1, "month").startOf("month").valueOf();
78681
+ endDate = moment().endOf("month").valueOf();
78682
+ break;
78683
+
78684
+ case "this week":
78685
+ startDate = !(prompt !== null && prompt !== void 0 && prompt.isCompareDataTime) ? moment().startOf("week").valueOf() : moment().subtract(1, "week").startOf("week").valueOf();
78686
+ endDate = moment().endOf("week").valueOf();
78687
+ break;
78688
+
78689
+ case "last month":
78690
+ startDate = !(prompt !== null && prompt !== void 0 && prompt.isCompareDataTime) ? moment().subtract(1, "month").startOf("month").valueOf() : moment().subtract(2, "month").startOf("month").valueOf();
78691
+ endDate = moment().subtract(1, "month").endOf("month").valueOf();
78692
+ break;
78693
+
78694
+ case "last year":
78695
+ startDate = !(prompt !== null && prompt !== void 0 && prompt.isCompareDataTime) ? moment().subtract(1, "year").startOf("year").valueOf() : moment().subtract(2, "year").startOf("year").valueOf();
78696
+ endDate = moment().subtract(1, "year").endOf("year").valueOf();
78697
+ break;
78698
+
78699
+ case "today":
78700
+ startDate = !(prompt !== null && prompt !== void 0 && prompt.isCompareDataTime) ? moment().startOf("day").valueOf() : moment().subtract(1, "day").startOf("day").valueOf();
78701
+ endDate = moment().endOf("day").valueOf();
78702
+ break;
78703
+
78704
+ default:
78705
+ break;
78706
+ }
78707
+
78708
+ if (startDate && endDate) {
78709
+ !!prompt && getSessionAnswerData(startDate, endDate, prompt, option, responses);
78710
+ } else {
78711
+ if ((prompt === null || prompt === void 0 ? void 0 : prompt.dataType) == IDataType.Total) {
78712
+ var dataInputPrompt = "Here is the data summary: \n - Total check-ins: " + totalCheckIns.checkInCount + " \n - Completed check-ins: " + totalCheckIns.checkInCompleteCount + " \n - Total one-on-one sessions: " + totalCheckIns.oneToOneCount + " \n - Completed one-on-one sessions: " + totalCheckIns.oneToOneCompleteCount + " \n\n The following students and teachers have not completed their tasks: \n - Pending check-ins: " + totalCheckIns.studentNotDoneCheckIns.join(", ") + " \n - Pending one-on-one conversations: " + totalCheckIns.studentNotDoneConversations.join(", ");
78713
+ !!prompt && askGeminiAI(dataInputPrompt, prompt, "", responses);
78714
+ } else {
78715
+ var _dataInputPrompt = "This is the data:\n" + (!(answers !== null && answers !== void 0 && answers.length) ? "No data available for analysis." : answers.map(function (r) {
78716
+ return "Student name: " + r.fullName + ", \n Answer: " + r.answer + ", \n Student grade: " + r.grade + ", \n Start time: " + r.startTime + ", \n Question: " + r.question + ", \n Teacher name: " + r.teacherName + ";";
78717
+ }).join("\n"));
78718
+
78719
+ !!prompt && askGeminiAI(_dataInputPrompt, prompt, "", responses);
78720
+ }
78721
+ }
78722
+ } catch (err) {
78723
+ var _err$response;
78724
+
78725
+ dispatch(setAlert({
78726
+ type: "danger",
78727
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : _err$response.data) || err.message
78728
+ }));
78729
+ }
78730
+ };
78731
+
78732
+ var getSessionAnswerData = useCallback(function (startDate, endDate, prompt, labelTime, responses) {
78733
+ try {
78734
+ var _temp6 = _catch(function () {
78735
+ var filters = {
78736
+ startDate: startDate,
78737
+ endDate: endDate,
78738
+ question: prompt.question,
78739
+ instruction: prompt.instruction,
78740
+ studentName: inputString
78741
+ };
78742
+ return Promise.resolve(prompt.dataType != IDataType.Total ? getSessionAnswer(filters) : getTotalSession(filters)).then(function (res) {
78743
+ if (prompt.dataType == IDataType.Total) {
78744
+ setTotalCheckIns(res.data);
78745
+ var totals = res.data;
78746
+ var dataInputPrompt = "Here is the data summary: \n - Total check-ins: " + totals.checkInCount + " \n - Completed check-ins: " + totals.checkInCompleteCount + " \n - Total one-on-one sessions: " + totals.oneToOneCount + " \n - Completed one-on-one sessions: " + totals.oneToOneCompleteCount + " \n\n The following students and teachers have not completed their tasks: \n - Pending check-ins: " + totals.studentNotDoneCheckIns.join(", ") + " \n - Pending one-on-one conversations: " + totals.studentNotDoneConversations.join(", ");
78747
+ askGeminiAI(dataInputPrompt, prompt, labelTime, responses);
78748
+ } else {
78749
+ var _answers = res.data || [];
78750
+
78751
+ setAnswers(_answers);
78752
+
78753
+ var _dataInputPrompt2 = "This is the data:\n" + (!(_answers !== null && _answers !== void 0 && _answers.length) ? "No data available for analysis." : _answers.map(function (r) {
78754
+ return "Student name: " + r.fullName + ", \n Answer: " + r.answer + ", \n Student grade: " + r.grade + ", \n Start time: " + r.startTime + ", \n Question: " + r.question + ", \n Teacher name: " + r.teacherName + ";";
78755
+ }).join("\n"));
78756
+
78757
+ askGeminiAI(_dataInputPrompt2, prompt, labelTime, responses);
78758
+ }
78759
+ });
78760
+ }, function (err) {
78761
+ var _err$response2;
78762
+
78763
+ dispatch(setAlert({
78764
+ type: "danger",
78765
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : _err$response2.data) || err.message
78766
+ }));
78767
+ });
78768
+
78769
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
78770
+ } catch (e) {
78771
+ return Promise.reject(e);
78772
+ }
78773
+ }, [prompt, historyId, inputString]);
78774
+ var saveHistoryPrompt = useCallback(function (data) {
78775
+ try {
78776
+ var _temp8 = _catch(function () {
78777
+ return Promise.resolve(createHistory(data)).then(function (res) {
78778
+ setHistoryId(res.data);
78779
+ });
78780
+ }, function (err) {
78781
+ var _err$response3;
78782
+
78783
+ dispatch(setAlert({
78784
+ type: "danger",
78785
+ message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : _err$response3.data) || err.message
78786
+ }));
78787
+ });
78788
+
78789
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
78790
+ } catch (e) {
78791
+ return Promise.reject(e);
78792
+ }
78793
+ }, [historyId]);
78794
+
78795
+ var askGeminiAI = function askGeminiAI(dataInputPrompt, prompt, labelTime, responses) {
78796
+ try {
78797
+ var _temp10 = _catch(function () {
78798
+ var genAI = new GoogleGenerativeAI("AIzaSyDLvLHpaqW2M7teNlTwN_0aFOTBvzL2yIM");
78799
+ var model = genAI.getGenerativeModel({
78800
+ model: prompt.aiModel
78801
+ });
78802
+ var userMessages = prompt.messages.filter(function (r) {
78803
+ var _r$role2;
78804
+
78805
+ return ((_r$role2 = r.role) === null || _r$role2 === void 0 ? void 0 : _r$role2.toString()) != "System";
78806
+ }).map(function (i) {
78807
+ var _i$role2, _i$message;
78808
+
78809
+ return {
78810
+ role: (_i$role2 = i.role) === null || _i$role2 === void 0 ? void 0 : _i$role2.toString().toLowerCase(),
78811
+ parts: [{
78812
+ text: (_i$message = i.message) === null || _i$message === void 0 ? void 0 : _i$message.replace(/{time}/g, labelTime)
78813
+ }]
78814
+ };
78815
+ });
78816
+ var updatedChatHistory = responses.filter(function (r) {
78817
+ return r.message;
78818
+ }).reduce(function (acc, i) {
78819
+ acc.push({
78820
+ role: i.isUser ? "user" : "model",
78821
+ parts: [{
78822
+ text: i.message
78823
+ }]
78824
+ });
78825
+
78826
+ if (timeKeywords.includes(i.message.toLowerCase())) {
78827
+ acc.push({
78828
+ role: "user",
78829
+ parts: [{
78830
+ text: dataInputPrompt
78831
+ }]
78832
+ });
78833
+ }
78834
+
78835
+ return acc;
78836
+ }, []);
78837
+ var systemMessages = prompt.messages.filter(function (r) {
78838
+ var _r$role3;
78839
+
78840
+ return ((_r$role3 = r.role) === null || _r$role3 === void 0 ? void 0 : _r$role3.toString()) == "System";
78841
+ }).map(function (i) {
78842
+ var _i$message2;
78843
+
78844
+ return {
78845
+ text: (_i$message2 = i.message) === null || _i$message2 === void 0 ? void 0 : _i$message2.replace(/{time}/g, labelTime)
78846
+ };
78847
+ });
78848
+ var contents = [].concat(userMessages, updatedChatHistory);
78849
+ return Promise.resolve(model.generateContent({
78850
+ contents: contents,
78851
+ systemInstruction: {
78852
+ role: "system",
78853
+ parts: [].concat(systemMessages, [{
78854
+ text: dataInputPrompt
78855
+ }])
78856
+ },
78857
+ generationConfig: {
78858
+ temperature: prompt.temperature,
78859
+ topP: prompt.topP,
78860
+ topK: prompt.topK,
78861
+ maxOutputTokens: prompt.maxOutputTokens,
78862
+ frequencyPenalty: prompt.frequencyPenalty,
78863
+ presencePenalty: prompt.presencePenalty,
78864
+ responseMimeType: "text/plain"
78865
+ }
78866
+ })).then(function (result) {
78867
+ var _result$response;
78868
+
78869
+ var partialText = result === null || result === void 0 ? void 0 : (_result$response = result.response) === null || _result$response === void 0 ? void 0 : _result$response.text();
78870
+
78871
+ if (!!partialText) {
78872
+ var aiChats = [];
78873
+ setChats(function (prevChats) {
78874
+ var _match$1$split$;
78875
+
78876
+ var regex = /\{{(.*?)}}/;
78877
+ var match = partialText.match(regex);
78878
+ var messageText = partialText.replace(regex, "").trim();
78879
+ var updatedChats = [].concat(prevChats, [{
78880
+ isUser: false,
78881
+ message: messageText,
78882
+ time: "",
78883
+ text: ""
78884
+ }], match ? [{
78885
+ isUser: false,
78886
+ message: match[1],
78887
+ time: "",
78888
+ text: "",
78889
+ options: (_match$1$split$ = match[1].split(" || ")[1]) === null || _match$1$split$ === void 0 ? void 0 : _match$1$split$.split("/")
78890
+ }] : []).filter(function (r) {
78891
+ return r.message;
78892
+ });
78893
+ aiChats = updatedChats;
78894
+ return updatedChats;
78895
+ });
78896
+ saveHistoryPrompt(_extends({}, prompt, {
78897
+ messages: aiChats,
78898
+ output: "",
78899
+ promptId: prompt.id,
78900
+ grade: "",
78901
+ calendar: "",
78902
+ createdAt: "",
78903
+ id: historyId != null ? historyId : undefined
78904
+ }));
78905
+ }
78906
+ });
78907
+ }, function (err) {
78908
+ var _err$response4, _err$response4$data;
78909
+
78910
+ dispatch(setAlert({
78911
+ type: "danger",
78912
+ message: ((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.title) || err.message
78913
+ }));
78914
+ });
78915
+
78916
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(function () {}) : void 0);
78917
+ } catch (e) {
78918
+ return Promise.reject(e);
78919
+ }
78920
+ };
78921
+
78922
+ useEffect(function () {
78923
+ id && getPromptDetail();
78924
+ }, [id]);
78925
+ return {
78926
+ theme: theme,
78927
+ setTheme: setTheme,
78928
+ goBack: goBack,
78929
+ isOpenSideBar: isOpenSideBar,
78930
+ prompt: prompt,
78931
+ chats: chats,
78932
+ handleChoiceOption: handleChoiceOption,
78933
+ getBracketedText: getBracketedText,
78934
+ submitPromptMessage: submitPromptMessage,
78935
+ inputString: inputString,
78936
+ setInputString: setInputString
78937
+ };
78938
+ };
78939
+
78940
+ var MarioAIIcon = function MarioAIIcon() {
78941
+ return React__default.createElement("svg", {
78942
+ width: "32",
78943
+ height: "32",
78944
+ viewBox: "0 0 32 32",
78945
+ fill: "none",
78946
+ xmlns: "http://www.w3.org/2000/svg"
78947
+ }, React__default.createElement("circle", {
78948
+ cx: "16",
78949
+ cy: "16",
78950
+ r: "16",
78951
+ fill: "url(#paint0_linear_11446_18038)"
78952
+ }), React__default.createElement("path", {
78953
+ d: "M15.7334 17.5834C15.6051 17.9753 15.0615 17.9753 14.9332 17.5834L14.1807 15.2832C14.0151 14.7776 13.7361 14.3182 13.3658 13.9414C12.9954 13.5646 12.544 13.2808 12.0471 13.1125L9.78872 12.3465C9.40376 12.2159 9.40376 11.6625 9.78872 11.5319L12.0483 10.766C12.545 10.5974 12.9963 10.3133 13.3665 9.93633C13.7366 9.55933 14.0154 9.09975 14.1808 8.59402L14.9332 6.29501C14.9608 6.2092 15.0144 6.13448 15.0863 6.0815C15.1581 6.02852 15.2446 6 15.3333 6C15.422 6 15.5085 6.02852 15.5803 6.0815C15.6522 6.13448 15.7058 6.2092 15.7334 6.29501L16.4858 8.59521C16.6513 9.10072 16.9302 9.56006 17.3003 9.93684C17.6705 10.3136 18.1217 10.5975 18.6183 10.766L20.8779 11.5319C20.9622 11.5601 21.0356 11.6146 21.0876 11.6878C21.1396 11.7609 21.1677 11.8489 21.1677 11.9392C21.1677 12.0295 21.1396 12.1175 21.0876 12.1907C21.0356 12.2638 20.9622 12.3184 20.8779 12.3465L18.6183 13.1125C18.1217 13.281 17.6705 13.5648 17.3003 13.9416C16.9302 14.3184 16.6513 14.7777 16.4858 15.2832L15.7334 17.5834ZM20.2398 23.6385C20.223 23.6899 20.1908 23.7347 20.1477 23.7664C20.1045 23.7981 20.0527 23.8152 19.9995 23.8152C19.9462 23.8152 19.8944 23.7981 19.8512 23.7664C19.8081 23.7347 19.7759 23.6899 19.7592 23.6385L19.3077 22.2586C19.1059 21.6435 18.6323 21.1614 18.028 20.9559L16.6725 20.4964C16.622 20.4794 16.578 20.4466 16.5468 20.4026C16.5157 20.3587 16.4989 20.3059 16.4989 20.2518C16.4989 20.1976 16.5157 20.1448 16.5468 20.1009C16.578 20.057 16.622 20.0242 16.6725 20.0071L18.028 19.5476C18.326 19.4465 18.5968 19.2761 18.8189 19.05C19.0411 18.8239 19.2084 18.5483 19.3077 18.2449L19.7592 16.865C19.7759 16.8136 19.8081 16.7688 19.8512 16.7371C19.8944 16.7054 19.9462 16.6883 19.9995 16.6883C20.0527 16.6883 20.1045 16.7054 20.1477 16.7371C20.1908 16.7688 20.223 16.8136 20.2398 16.865L20.6912 18.2449C20.7905 18.5483 20.9578 18.8239 21.18 19.05C21.4021 19.2761 21.6729 19.4465 21.9709 19.5476L23.3264 20.0071C23.377 20.0242 23.4209 20.057 23.4521 20.1009C23.4832 20.1448 23.5 20.1976 23.5 20.2518C23.5 20.3059 23.4832 20.3587 23.4521 20.4026C23.4209 20.4466 23.377 20.4794 23.3264 20.4964L21.9709 20.9559C21.6729 21.057 21.4021 21.2274 21.18 21.4535C20.9578 21.6796 20.7905 21.9553 20.6912 22.2586L20.2398 23.6385ZM11.9935 24.8842C11.982 24.918 11.9604 24.9473 11.9317 24.9681C11.9031 24.9888 11.8688 25 11.8337 25C11.7985 25 11.7642 24.9888 11.7356 24.9681C11.7069 24.9473 11.6854 24.918 11.6739 24.8842L11.3729 23.9651C11.2387 23.5542 10.9226 23.2324 10.519 23.0958L9.61607 22.7895C9.58286 22.7777 9.55405 22.7558 9.53367 22.7266C9.51328 22.6975 9.50233 22.6626 9.50233 22.6268C9.50233 22.591 9.51328 22.5561 9.53367 22.5269C9.55405 22.4978 9.58286 22.4758 9.61607 22.4641L10.519 22.1577C10.7179 22.0903 10.8986 21.9767 11.0469 21.8258C11.1951 21.6749 11.3067 21.4909 11.3729 21.2884L11.6739 20.3693C11.6854 20.3355 11.7069 20.3062 11.7356 20.2854C11.7642 20.2647 11.7985 20.2535 11.8337 20.2535C11.8688 20.2535 11.9031 20.2647 11.9317 20.2854C11.9604 20.3062 11.982 20.3355 11.9935 20.3693L12.2945 21.2884C12.3606 21.4909 12.4723 21.6749 12.6205 21.8258C12.7687 21.9767 12.9495 22.0903 13.1484 22.1577L14.0501 22.4641C14.0833 22.4758 14.1121 22.4978 14.1325 22.5269C14.1529 22.5561 14.1638 22.591 14.1638 22.6268C14.1638 22.6626 14.1529 22.6975 14.1325 22.7266C14.1121 22.7558 14.0833 22.7777 14.0501 22.7895L13.1472 23.0958C12.7436 23.2324 12.4274 23.5542 12.2933 23.9651L11.9935 24.8842Z",
78954
+ fill: "white"
78955
+ }), React__default.createElement("defs", null, React__default.createElement("linearGradient", {
78956
+ id: "paint0_linear_11446_18038",
78957
+ x1: "0",
78958
+ y1: "16",
78959
+ x2: "32",
78960
+ y2: "16",
78961
+ gradientUnits: "userSpaceOnUse"
78962
+ }, React__default.createElement("stop", {
78963
+ stopColor: "#346DDA"
78964
+ }), React__default.createElement("stop", {
78965
+ offset: "1",
78966
+ stopColor: "#844DE1"
78967
+ }))));
78968
+ };
78969
+
78970
+ var ChatContent = function ChatContent(_ref) {
78971
+ var theme = _ref.theme,
78972
+ chats = _ref.chats,
78973
+ onSelectOption = _ref.onSelectOption,
78974
+ getBracketedText = _ref.getBracketedText,
78975
+ submitPromptMessage = _ref.submitPromptMessage,
78976
+ inputString = _ref.inputString,
78977
+ setInputString = _ref.setInputString;
78978
+ return React__default.createElement("div", {
78979
+ className: (theme === THEME.DARK ? styles$d["ai-mario-chat__content___dark"] : "") + " " + styles$d["ai-mario-chat__content"] + " "
78980
+ }, React__default.createElement("div", {
78981
+ className: "" + styles$d["content-container"]
78982
+ }, function () {
78983
+ var stopIndex = chats.findIndex(function (r) {
78984
+ return getBracketedText(r.message || "") !== null;
78985
+ });
78986
+ if (stopIndex === -1) stopIndex = chats.length;
78987
+ return chats.slice(0, stopIndex + 1).map(function (item, i) {
78988
+ var _item$message, _item$message$split, _item$message$split$, _item$text, _item$text$split, _item$text$split$;
78989
+
78990
+ var bracketedText = getBracketedText(item.message || "");
78991
+ return bracketedText ? React__default.createElement("div", {
78992
+ className: styles$d["bracketed-input-block"] + " d-flex align-items-center"
78993
+ }, React__default.createElement(TextField, {
78994
+ variant: "outlined",
78995
+ key: "input-" + i,
78996
+ type: "text",
78997
+ className: styles$d["bracketed-input"],
78998
+ label: "Please enter " + (bracketedText === null || bracketedText === void 0 ? void 0 : bracketedText.toLowerCase()) + "...",
78999
+ value: inputString,
79000
+ onChange: function onChange(e) {
79001
+ return setInputString === null || setInputString === void 0 ? void 0 : setInputString(e.target.value);
79002
+ }
79003
+ }), inputString && React__default.createElement(SendIcon, {
79004
+ className: styles$d["icon-input"],
79005
+ onClick: function onClick() {
79006
+ return submitPromptMessage === null || submitPromptMessage === void 0 ? void 0 : submitPromptMessage();
79007
+ }
79008
+ })) : React__default.createElement("div", {
79009
+ key: i,
79010
+ className: styles$d["chat-box"] + " " + (item.isUser ? styles$d["chat-box__user-container"] : "")
79011
+ }, !item.isUser && React__default.createElement("div", {
79012
+ className: styles$d["chat-box__avatar"]
79013
+ }, React__default.createElement(MarioAIIcon, null)), React__default.createElement("div", {
79014
+ className: styles$d["chat-box__content"] + " " + (item.isUser ? styles$d["chat-box__user"] : "")
79015
+ }, !item.isUser && React__default.createElement("div", {
79016
+ className: styles$d["name"]
79017
+ }, "Mario AI"), React__default.createElement("div", {
79018
+ className: styles$d["message"],
79019
+ style: !item.message && !item.text ? {
79020
+ display: "flex",
79021
+ justifyContent: "center",
79022
+ alignItems: "center",
79023
+ padding: "14px 24px 12px 24px",
79024
+ width: 80
79025
+ } : {}
79026
+ }, item.message || item.text ? React__default.createElement(Fragment$1, null, React__default.createElement(Markdown, null, ((_item$message = item.message) === null || _item$message === void 0 ? void 0 : (_item$message$split = _item$message.split(" || ")) === null || _item$message$split === void 0 ? void 0 : (_item$message$split$ = _item$message$split[0]) === null || _item$message$split$ === void 0 ? void 0 : _item$message$split$.trim()) || ((_item$text = item.text) === null || _item$text === void 0 ? void 0 : (_item$text$split = _item$text.split(" || ")) === null || _item$text$split === void 0 ? void 0 : (_item$text$split$ = _item$text$split[0]) === null || _item$text$split$ === void 0 ? void 0 : _item$text$split$.trim()) || ""), item.options && React__default.createElement("div", {
79027
+ className: styles$d["option"]
79028
+ }, item.options.map(function (option) {
79029
+ return React__default.createElement("button", {
79030
+ key: option,
79031
+ onClick: function onClick() {
79032
+ return onSelectOption === null || onSelectOption === void 0 ? void 0 : onSelectOption(option);
79033
+ },
79034
+ className: styles$d["option__item"]
79035
+ }, option);
79036
+ }))) : React__default.createElement("div", {
79037
+ className: styles$d["loader"]
79038
+ }, React__default.createElement("span", {
79039
+ className: styles$d["loader__dot"]
79040
+ }), React__default.createElement("span", {
79041
+ className: styles$d["loader__dot"]
79042
+ }), React__default.createElement("span", {
79043
+ className: styles$d["loader__dot"]
79044
+ }))), (item.message || item.text) && React__default.createElement("div", {
79045
+ className: styles$d["time"]
79046
+ }, item.time)));
79047
+ });
79048
+ }()));
79049
+ };
79050
+
79051
+ var ChatWithAI = function ChatWithAI() {
79052
+ var _prompt$name;
79053
+
79054
+ var _useAIChat = useAIChat(),
79055
+ theme = _useAIChat.theme,
79056
+ setTheme = _useAIChat.setTheme,
79057
+ goBack = _useAIChat.goBack,
79058
+ isOpenSideBar = _useAIChat.isOpenSideBar,
79059
+ prompt = _useAIChat.prompt,
79060
+ chats = _useAIChat.chats,
79061
+ handleChoiceOption = _useAIChat.handleChoiceOption,
79062
+ getBracketedText = _useAIChat.getBracketedText,
79063
+ submitPromptMessage = _useAIChat.submitPromptMessage,
79064
+ inputString = _useAIChat.inputString,
79065
+ setInputString = _useAIChat.setInputString;
79066
+
79067
+ return React__default.createElement("div", {
79068
+ className: styles$d['ai-mario-chat']
79069
+ }, React__default.createElement(ChatHeader, {
79070
+ theme: theme,
79071
+ setTheme: setTheme,
79072
+ goBack: goBack,
79073
+ isOpenSideBar: isOpenSideBar,
79074
+ name: (_prompt$name = prompt === null || prompt === void 0 ? void 0 : prompt.name) != null ? _prompt$name : ""
79075
+ }), React__default.createElement(ChatContent, {
79076
+ theme: theme,
79077
+ chats: chats,
79078
+ onSelectOption: handleChoiceOption,
79079
+ getBracketedText: getBracketedText,
79080
+ submitPromptMessage: submitPromptMessage,
79081
+ inputString: inputString,
79082
+ setInputString: setInputString
79083
+ }));
79084
+ };
79085
+
79086
+ var useHistoryPrompt = function useHistoryPrompt() {
79087
+ var dispatch = useDispatch();
79088
+ var history = useHistory();
79089
+
79090
+ var _useParams = useParams(),
79091
+ id = _useParams.id;
79092
+
79093
+ var _useState = useState("light"),
79094
+ theme = _useState[0],
79095
+ setTheme = _useState[1];
79096
+
79097
+ var isOpenSideBar = useSelector(function (state) {
79098
+ var _state$common;
79099
+
79100
+ return (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.menuBar;
79101
+ });
79102
+
79103
+ var _useState2 = useState(),
79104
+ prompt = _useState2[0],
79105
+ setPrompt = _useState2[1];
79106
+
79107
+ var goBack = function goBack() {
79108
+ history.goBack();
79109
+ };
79110
+
79111
+ var getBracketedText = function getBracketedText(text) {
79112
+ return (text.match(/\[\[(.*?)\]\]/) || [])[1] || null;
79113
+ };
79114
+
79115
+ var getPromptDetail = useCallback(function () {
79116
+ try {
79117
+ var _temp3 = function _temp3() {
79118
+ dispatch(setLoading(false));
79119
+ };
79120
+
79121
+ dispatch(setLoading(true));
79122
+
79123
+ var _temp4 = _catch(function () {
79124
+ return Promise.resolve(getHistoryById(parseInt(id))).then(function (res) {
79125
+ if (res.data) {
79126
+ setPrompt(res.data);
79127
+ }
79128
+ });
79129
+ }, function (err) {
79130
+ dispatch(setAlert({
79131
+ type: "danger",
79132
+ message: err.message
79133
+ }));
79134
+ });
79135
+
79136
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
79137
+ } catch (e) {
79138
+ return Promise.reject(e);
79139
+ }
79140
+ }, [id]);
79141
+ useEffect(function () {
79142
+ id && getPromptDetail();
79143
+ }, [id]);
79144
+ return {
79145
+ theme: theme,
79146
+ setTheme: setTheme,
79147
+ goBack: goBack,
79148
+ isOpenSideBar: isOpenSideBar,
79149
+ prompt: prompt,
79150
+ getBracketedText: getBracketedText
79151
+ };
79152
+ };
79153
+
79154
+ var ViewHistoryPrompt = function ViewHistoryPrompt() {
79155
+ var _prompt$name;
79156
+
79157
+ var _useHistoryPrompt = useHistoryPrompt(),
79158
+ goBack = _useHistoryPrompt.goBack,
79159
+ isOpenSideBar = _useHistoryPrompt.isOpenSideBar,
79160
+ prompt = _useHistoryPrompt.prompt,
79161
+ setTheme = _useHistoryPrompt.setTheme,
79162
+ theme = _useHistoryPrompt.theme,
79163
+ getBracketedText = _useHistoryPrompt.getBracketedText;
79164
+
79165
+ return React__default.createElement("div", {
79166
+ className: styles$d["ai-mario-chat"]
79167
+ }, React__default.createElement(ChatHeader, {
79168
+ theme: theme,
79169
+ setTheme: setTheme,
79170
+ goBack: goBack,
79171
+ isOpenSideBar: isOpenSideBar,
79172
+ name: (_prompt$name = prompt === null || prompt === void 0 ? void 0 : prompt.name) != null ? _prompt$name : ""
79173
+ }), React__default.createElement(ChatContent, {
79174
+ theme: theme,
79175
+ chats: (prompt === null || prompt === void 0 ? void 0 : prompt.messages) || [],
79176
+ getBracketedText: getBracketedText,
79177
+ inputString: ""
79178
+ }));
79179
+ };
79180
+
79181
+ var styles$e = {"survey-portal":"_32YVh","create-new-btn":"_2pqkt","survey-portal-dashboard":"_10mFg","dashboard-root":"_ol6v1","dashboard-header":"_1nGwv","header-left":"_3ZVx1","header-left-title":"_3zJ6N","header-left-description":"_aNEzP","dashboard-cards":"_T2QhN","show-blur":"_2k8eW","scroll-btn":"_3LX77","dashboard-card":"_rV_wf","dashboard-card-title":"_1dkjY","dashboard-card-description":"_2N0Jl","learn-more-btn":"_FoRnw","dashboard-surveys":"_y4RMj","dashboard-stats":"_2vCyM","dashboard-stats-title":"_1RtaL","create-template-button":"_1VeM-","create-survey-button":"_2FW07","survey-index":"_1-7Lk","survey-index-left":"_7ASwE","last-survey-index":"_5wgo2","survey-index-right":"_1bOyN","survey-index-card":"_2N-Ie","index-title":"_n24sR","link-view-survey":"_1f6ee","header-link":"_3dWko","active-survey-card":"_bKT0k","index-card-value":"_1O-jW","index-card-description":"_GLrEM","schedule-survey-card":"_1LDJ_","survey-item":"_W9PK3","survey-item-title":"_3c4hi","survey-item-date":"_2EvrJ","survey-item-Active":"_29PJt","survey-item-Close":"_GAmd7","survey-item-more":"_1Gz67","action-wrapper":"_15kTE","action-item":"_3LaNO","template-icon":"_nXa-q"};
79182
+
79183
+ var PopoverCustom$2 = styled$1(Popover)(function () {
79184
+ return {
79185
+ "& .MuiPopover-paper": {
79186
+ boxShadow: "0px 0px 32px 0px rgba(64, 95, 152, 0.32)"
79187
+ }
79188
+ };
79189
+ });
79190
+
77653
79191
  var SurveyPortal = function SurveyPortal() {
77654
79192
  var _listTotal$find, _listTotal$find2, _listSurvey$items;
77655
79193
 
@@ -77745,22 +79283,22 @@ var SurveyPortal = function SurveyPortal() {
77745
79283
  };
77746
79284
  }, [questionCateList]);
77747
79285
  return React__default.createElement(Grid, {
77748
- className: styles$d["dashboard-root"] + " "
79286
+ className: styles$e["dashboard-root"] + " "
77749
79287
  }, React__default.createElement(Grid, {
77750
- className: styles$d["dashboard-header"] + " " + styles$d[isScrollable ? "show-blur" : ""] + " d-flex justify-content-between shadow-lg"
79288
+ className: styles$e["dashboard-header"] + " " + styles$e[isScrollable ? "show-blur" : ""] + " d-flex justify-content-between shadow-lg"
77751
79289
  }, React__default.createElement(Grid, {
77752
- className: "" + styles$d["header-left"]
79290
+ className: "" + styles$e["header-left"]
77753
79291
  }, React__default.createElement(Typography, {
77754
- className: "" + styles$d["header-left-title"]
79292
+ className: "" + styles$e["header-left-title"]
77755
79293
  }, "Empower student well being with ready-to-use survey templates"), React__default.createElement(Typography, {
77756
- className: "" + styles$d["header-left-description"]
79294
+ className: "" + styles$e["header-left-description"]
77757
79295
  }, "Our templates are research-based and designed to track and support emotional, social, and academic health in schools.")), React__default.createElement(Grid, {
77758
79296
  ref: cardsRef,
77759
- className: styles$d["dashboard-cards"]
79297
+ className: styles$e["dashboard-cards"]
77760
79298
  }, questionCateList === null || questionCateList === void 0 ? void 0 : questionCateList.map(function (r, index) {
77761
79299
  return React__default.createElement(Grid, {
77762
79300
  key: index,
77763
- className: styles$d["dashboard-card"]
79301
+ className: styles$e["dashboard-card"]
77764
79302
  }, React__default.createElement(Grid, null, React__default.createElement(Grid, {
77765
79303
  container: true,
77766
79304
  spacing: 2
@@ -77771,40 +79309,40 @@ var SurveyPortal = function SurveyPortal() {
77771
79309
  arrow: true,
77772
79310
  title: r.name || ""
77773
79311
  }, React__default.createElement(Typography, {
77774
- className: styles$d["dashboard-card-title"]
79312
+ className: styles$e["dashboard-card-title"]
77775
79313
  }, r.name))), React__default.createElement(Grid, {
77776
79314
  item: true,
77777
79315
  xs: 4,
77778
79316
  className: "d-flex justify-content-end"
77779
79317
  }, React__default.createElement("img", {
77780
- className: "" + styles$d["template-icon"],
79318
+ className: "" + styles$e["template-icon"],
77781
79319
  src: "/images/" + templateIcons[index]
77782
79320
  }))), React__default.createElement(CustomTooltip, {
77783
79321
  arrow: true,
77784
79322
  title: r.description || ""
77785
79323
  }, React__default.createElement(Typography, {
77786
- className: styles$d["dashboard-card-description"]
79324
+ className: styles$e["dashboard-card-description"]
77787
79325
  }, r.description))), React__default.createElement(Button, {
77788
79326
  onClick: function onClick() {
77789
79327
  return goToTemplateSurvey();
77790
79328
  },
77791
- className: styles$d["learn-more-btn"]
79329
+ className: styles$e["learn-more-btn"]
77792
79330
  }, React__default.createElement(Typography, null, "Learn More"), React__default.createElement(ArrowForwardIcon, null)));
77793
79331
  })), React__default.createElement("img", {
77794
79332
  onClick: function onClick() {
77795
79333
  return handleScroll();
77796
79334
  },
77797
- className: "" + styles$d["scroll-btn"],
79335
+ className: "" + styles$e["scroll-btn"],
77798
79336
  src: imageSrc,
77799
79337
  alt: "scroll",
77800
79338
  onMouseEnter: handleMouseEnter,
77801
79339
  onMouseLeave: handleMouseLeave
77802
79340
  })), React__default.createElement(Grid, {
77803
- className: styles$d["dashboard-surveys"] + " shadow-lg"
79341
+ className: styles$e["dashboard-surveys"] + " shadow-lg"
77804
79342
  }, React__default.createElement(Grid, {
77805
- className: styles$d["dashboard-stats"]
79343
+ className: styles$e["dashboard-stats"]
77806
79344
  }, React__default.createElement(Typography, {
77807
- className: styles$d["dashboard-stats-title"]
79345
+ className: styles$e["dashboard-stats-title"]
77808
79346
  }, "Surveys"), React__default.createElement(Grid, {
77809
79347
  className: "d-flex align-items-center"
77810
79348
  }, React__default.createElement("button", {
@@ -77812,85 +79350,85 @@ var SurveyPortal = function SurveyPortal() {
77812
79350
  localStorage.setItem("OPEN_DEFAULT_MODEL", "true");
77813
79351
  goToTemplateSurvey();
77814
79352
  },
77815
- className: styles$d["create-template-button"]
79353
+ className: styles$e["create-template-button"]
77816
79354
  }, React__default.createElement(AddIcon, null), React__default.createElement(Typography, null, "CREATE NEW TEMPLATE")), React__default.createElement("button", {
77817
79355
  onClick: function onClick() {
77818
79356
  return handleChangePageCreate();
77819
79357
  },
77820
- className: styles$d["create-survey-button"]
79358
+ className: styles$e["create-survey-button"]
77821
79359
  }, React__default.createElement(AddIcon, null), React__default.createElement(Typography, null, "CREATE NEW SURVEY")))), React__default.createElement(Grid, {
77822
- className: styles$d["survey-index"] + " d-flex"
79360
+ className: styles$e["survey-index"] + " d-flex"
77823
79361
  }, React__default.createElement(Grid, {
77824
- className: styles$d["survey-index-left"] + " d-flex flex-column"
79362
+ className: styles$e["survey-index-left"] + " d-flex flex-column"
77825
79363
  }, React__default.createElement(Grid, {
77826
- className: "d-flex align-items-center " + styles$d["header-link"]
79364
+ className: "d-flex align-items-center " + styles$e["header-link"]
77827
79365
  }, React__default.createElement(Typography, {
77828
- className: "" + styles$d["index-title"]
79366
+ className: "" + styles$e["index-title"]
77829
79367
  }, "Survey Dashboard"), React__default.createElement(Grid, {
77830
79368
  onClick: function onClick() {
77831
79369
  return goToDashboardSurvey();
77832
79370
  },
77833
- className: "d-flex align-items-center " + styles$d["link-view-survey"]
79371
+ className: "d-flex align-items-center " + styles$e["link-view-survey"]
77834
79372
  }, React__default.createElement(Typography, null, "View"), React__default.createElement(ArrowForwardIcon, null))), React__default.createElement(Grid, {
77835
- className: "d-flex justify-content-between align-items-center " + styles$d["active-survey-card"] + " " + styles$d["survey-index-card"]
79373
+ className: "d-flex justify-content-between align-items-center " + styles$e["active-survey-card"] + " " + styles$e["survey-index-card"]
77836
79374
  }, React__default.createElement(Grid, {
77837
79375
  className: "d-flex flex-column"
77838
79376
  }, React__default.createElement(Typography, {
77839
- className: "" + styles$d["index-card-value"]
79377
+ className: "" + styles$e["index-card-value"]
77840
79378
  }, ((_listTotal$find = listTotal.find(function (r) {
77841
79379
  return r.title == "active_surveys";
77842
79380
  })) === null || _listTotal$find === void 0 ? void 0 : _listTotal$find.value) || 0), React__default.createElement(Typography, {
77843
- className: "" + styles$d["index-card-description"]
79381
+ className: "" + styles$e["index-card-description"]
77844
79382
  }, "Active Surveys")), React__default.createElement(Grid, {
77845
79383
  className: "full-height"
77846
79384
  }, React__default.createElement("img", {
77847
79385
  src: "/images/active-surveys.png",
77848
79386
  alt: "total-card"
77849
79387
  }))), React__default.createElement(Grid, {
77850
- className: "d-flex justify-content-between align-items-center " + styles$d["schedule-survey-card"] + " " + styles$d["survey-index-card"]
79388
+ className: "d-flex justify-content-between align-items-center " + styles$e["schedule-survey-card"] + " " + styles$e["survey-index-card"]
77851
79389
  }, React__default.createElement(Grid, {
77852
79390
  className: "d-flex flex-column"
77853
79391
  }, React__default.createElement(Typography, {
77854
- className: "" + styles$d["index-card-value"]
79392
+ className: "" + styles$e["index-card-value"]
77855
79393
  }, ((_listTotal$find2 = listTotal.find(function (r) {
77856
79394
  return r.title == "scheduled_sessions";
77857
79395
  })) === null || _listTotal$find2 === void 0 ? void 0 : _listTotal$find2.value) || 0), React__default.createElement(Typography, {
77858
- className: "" + styles$d["index-card-description"]
79396
+ className: "" + styles$e["index-card-description"]
77859
79397
  }, "Scheduled Session")), React__default.createElement(Grid, {
77860
79398
  className: "full-height"
77861
79399
  }, React__default.createElement("img", {
77862
79400
  src: "/images/scheduled-session.png",
77863
79401
  alt: "total-card"
77864
79402
  })))), React__default.createElement(Grid, {
77865
- className: styles$d["survey-index-right"]
79403
+ className: styles$e["survey-index-right"]
77866
79404
  }, React__default.createElement(Grid, {
77867
- className: "d-flex align-items-center " + styles$d["header-link"]
79405
+ className: "d-flex align-items-center " + styles$e["header-link"]
77868
79406
  }, React__default.createElement(Typography, {
77869
- className: "" + styles$d["index-title"]
79407
+ className: "" + styles$e["index-title"]
77870
79408
  }, "Last Surveys"), React__default.createElement(Grid, {
77871
79409
  onClick: function onClick() {
77872
79410
  return goToSurveyList();
77873
79411
  },
77874
- className: "d-flex align-items-center " + styles$d["link-view-survey"]
79412
+ className: "d-flex align-items-center " + styles$e["link-view-survey"]
77875
79413
  }, React__default.createElement(Typography, null, "See All"), React__default.createElement(ArrowForwardIcon, null))), React__default.createElement(Grid, {
77876
- className: styles$d["last-survey-index"]
79414
+ className: styles$e["last-survey-index"]
77877
79415
  }, listSurvey === null || listSurvey === void 0 ? void 0 : (_listSurvey$items = listSurvey.items) === null || _listSurvey$items === void 0 ? void 0 : _listSurvey$items.map(function (r) {
77878
79416
  return React__default.createElement(Grid, {
77879
- className: "d-flex align-items-center " + styles$d["survey-item"]
79417
+ className: "d-flex align-items-center " + styles$e["survey-item"]
77880
79418
  }, React__default.createElement(CustomTooltip, {
77881
79419
  arrow: true,
77882
79420
  title: r.title || ""
77883
79421
  }, React__default.createElement(Typography, {
77884
- className: "" + styles$d["survey-item-title"]
79422
+ className: "" + styles$e["survey-item-title"]
77885
79423
  }, r.title)), React__default.createElement(Typography, {
77886
- className: "" + styles$d["survey-item-date"]
79424
+ className: "" + styles$e["survey-item-date"]
77887
79425
  }, React__default.createElement(ConvertTime, {
77888
79426
  time: r.createdDate,
77889
79427
  line: true
77890
79428
  })), React__default.createElement(Grid, {
77891
- className: "" + styles$d["survey-item-" + r.status]
79429
+ className: "" + styles$e["survey-item-" + r.status]
77892
79430
  }, React__default.createElement(Typography, null, r.status)), React__default.createElement(Grid, {
77893
- className: "" + styles$d["survey-item-more"]
79431
+ className: "" + styles$e["survey-item-more"]
77894
79432
  }, React__default.createElement(Button, {
77895
79433
  "aria-describedby": popoverId,
77896
79434
  variant: "text",
@@ -77900,7 +79438,7 @@ var SurveyPortal = function SurveyPortal() {
77900
79438
  return handleClickAction(event, r.id, (_r$studentIds = r.studentIds) === null || _r$studentIds === void 0 ? void 0 : _r$studentIds[0]);
77901
79439
  }
77902
79440
  }, React__default.createElement(MoreVertIcon, null))));
77903
- }))))), React__default.createElement(PopoverCustom$1, {
79441
+ }))))), React__default.createElement(PopoverCustom$2, {
77904
79442
  id: popoverId,
77905
79443
  open: openPopover,
77906
79444
  anchorEl: anchorEl,
@@ -77913,26 +79451,26 @@ var SurveyPortal = function SurveyPortal() {
77913
79451
  vertical: "top",
77914
79452
  horizontal: "left"
77915
79453
  },
77916
- className: styles$d[classFontSize]
79454
+ className: styles$e[classFontSize]
77917
79455
  }, React__default.createElement("ul", {
77918
- className: "" + styles$d["action-wrapper"]
79456
+ className: "" + styles$e["action-wrapper"]
77919
79457
  }, React__default.createElement("li", {
77920
79458
  onClick: function onClick() {
77921
79459
  return open(TYPE_SURVEY_OPTION.VIEW_RESPONSE, itemSelectedId);
77922
79460
  },
77923
- className: styles$d["action-item"] + " text-nowrap"
79461
+ className: styles$e["action-item"] + " text-nowrap"
77924
79462
  }, t("view_responses")), React__default.createElement("li", {
77925
79463
  onClick: function onClick() {
77926
79464
  return open(TYPE_SURVEY_OPTION.VIEW_PREVIEW, itemSelectedId);
77927
79465
  },
77928
- className: styles$d["action-item"] + " text-nowrap"
79466
+ className: styles$e["action-item"] + " text-nowrap"
77929
79467
  }, t("preview_survey")), React__default.createElement("li", {
77930
79468
  onClick: function onClick() {
77931
79469
  return open(TYPE_SURVEY_OPTION.ANONYMOUS, itemSelectedId);
77932
79470
  },
77933
- className: styles$d["action-item"] + " text-nowrap"
79471
+ className: styles$e["action-item"] + " text-nowrap"
77934
79472
  }, t("anonymous_link")), React__default.createElement("li", {
77935
- className: styles$d["action-item"] + " text-nowrap",
79473
+ className: styles$e["action-item"] + " text-nowrap",
77936
79474
  onClick: function onClick() {
77937
79475
  return handleDownloadCsvSurvey(itemSelectedId);
77938
79476
  }
@@ -77940,7 +79478,7 @@ var SurveyPortal = function SurveyPortal() {
77940
79478
  onClick: function onClick() {
77941
79479
  return open(TYPE_SURVEY_OPTION.DELETE, itemSelectedId);
77942
79480
  },
77943
- className: styles$d["action-item"] + " text-nowrap"
79481
+ className: styles$e["action-item"] + " text-nowrap"
77944
79482
  }, t("delete")))), React__default.createElement(ModelLinkSurvey, {
77945
79483
  open: !!anonymousKey,
77946
79484
  onClose: handleCloseModelLink,
@@ -77951,5 +79489,5 @@ var SurveyPortal = function SurveyPortal() {
77951
79489
 
77952
79490
  LicenseManager.setLicenseKey(LICENSE_AGGRID);
77953
79491
 
77954
- export { AdminTraining, AssessmentAssignmentContainer, AssessmentList, AssetLog, AssignmentList, BadgeList, CertificateContainer, ClassList, CompareTeacher, ConferenceRubricDetail, ConferenceRubricList, CreateSurveyAdmin, CustomAlertList, CustomQuestionAlert, Dashboard, ExternalApi, FeedbackList, FixDataStudent, GoalExampleList, HomePage, LearningStrategyList, LearningSupportCategoryList, MainLayoutAdmin, OneRosterContainer, PreviewSurveyAdmin, QuestionBankContainer, QuestionBankList, QuestionCateList as QuestionCategoryList, QuestionDetail, ReflectionContainer, ReflectionFormList, RevertUser, Sandbox as SandboxContainer, SessionTemplateContainer, SessionTemplateDetail, SessionTemplateGeneralClassDetail, SessionTemplateGeneralClassList, SessionTemplateList, SettingWeeklyQuest, SetupContainer, TemplateSystemList as SubjectList, SuggestionBankList as SuggestionList, SummarizeQuestion, SurveyDashboardContainer, SurveyDetailAdmin, SurveyIndexAdmin, SurveyPortal, SurveyQuestion, SurveyQuestionContainer, SurveyResultAdmin, SurveyStudentFlagListAdmin, SyncData, TemplateBuilderPage, TemplateContainer, TemplateStartBuild, TutorialScreenContainer, WeeklyQuest };
79492
+ export { AIMario, AdminTraining, AssessmentAssignmentContainer, AssessmentList, AssetLog, AssignmentList, BadgeList, CertificateContainer, ChatWithAI, ClassList, CompareTeacher, ConferenceRubricDetail, ConferenceRubricList, CreateSurveyAdmin, CustomAlertList, CustomQuestionAlert, Dashboard, ExternalApi, FeedbackList, FixDataStudent, GoalExampleList, HomePage, LearningStrategyList, LearningSupportCategoryList, MainLayoutAdmin, MarioAi, OneRosterContainer, PreviewSurveyAdmin, QuestionBankContainer, QuestionBankList, QuestionCateList as QuestionCategoryList, QuestionDetail, ReflectionContainer, ReflectionFormList, RevertUser, Sandbox as SandboxContainer, SessionTemplateContainer, SessionTemplateDetail, SessionTemplateGeneralClassDetail, SessionTemplateGeneralClassList, SessionTemplateList, SettingWeeklyQuest, SetupContainer, TemplateSystemList as SubjectList, SuggestionBankList as SuggestionList, SummarizeQuestion, SurveyDashboardContainer, SurveyDetailAdmin, SurveyIndexAdmin, SurveyPortal, SurveyQuestion, SurveyQuestionContainer, SurveyResultAdmin, SurveyStudentFlagListAdmin, SyncData, TemplateBuilderPage, TemplateContainer, TemplateStartBuild, TutorialScreenContainer, ViewHistoryPrompt, WeeklyQuest };
77955
79493
  //# sourceMappingURL=index.modern.js.map