touchstudy-core 0.1.55 → 0.1.56

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.
@@ -9,7 +9,7 @@ import { useDispatch, useSelector } from 'react-redux';
9
9
  import axios from 'axios';
10
10
  import { useTranslation, initReactI18next } from 'react-i18next';
11
11
  export { I18nextProvider, useTranslation } from 'react-i18next';
12
- import { Paper, Card, Stack, Grid, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, Button, Box, Typography, Pagination, styled, Tooltip, tooltipClasses, ClickAwayListener, useTheme, useMediaQuery, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase } from '@mui/material';
12
+ import { Paper, Card, Stack, Grid, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, Button, Box, Typography, Pagination, styled, useTheme, useMediaQuery, Tooltip, tooltipClasses, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase } from '@mui/material';
13
13
  import 'moment/locale/ko.js';
14
14
  import 'moment/locale/en-au.js';
15
15
  import { gapi } from 'gapi-script';
@@ -23,10 +23,10 @@ import IconButton$1 from '@mui/material/IconButton';
23
23
  import { GoArrowSwitch } from 'react-icons/go';
24
24
  import { toast } from 'react-toastify';
25
25
  export { ToastContainer, toast } from 'react-toastify';
26
+ import { IoIosLogOut, IoMdArrowBack } from 'react-icons/io';
26
27
  import Select, { components } from 'react-select';
27
28
  import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaPlusCircle, FaTimes, FaSortUp, FaSortDown, FaEye } from 'react-icons/fa';
28
29
  import { PiDotsNineLight } from 'react-icons/pi';
29
- import { IoMdArrowBack, IoIosLogOut } from 'react-icons/io';
30
30
  import _ from 'lodash';
31
31
  import { FaPencil } from 'react-icons/fa6';
32
32
  import CreatableSelect from 'react-select/creatable';
@@ -69,7 +69,10 @@ var PUSHER_CONFIG = {
69
69
  };
70
70
  var ACCESS_TOKEN = "ACCESS_TOKEN";
71
71
  var ACADEMY_DOMAIN = "ACADEMY_DOMAIN";
72
+ var REDIRECT_URL = "REDIRECT_URL";
72
73
  var AcademyHeaders = "Academy-Headers";
74
+ var LanguageHeaders = "Accept-Language";
75
+ var DefaultErrorMessage = "an_unexpected_error_has_occurred";
73
76
  var DATE_MIN_VALUE = "0001-01-01T00:00:00+00:00";
74
77
  var DATE_TIME_MIN_VALUE = "0001-01-01T00:00:00";
75
78
  var EXAM_CHANNEL = "presence-exam-channel";
@@ -88,6 +91,13 @@ var getAcademyDomain = function getAcademyDomain() {
88
91
  return null;
89
92
  }
90
93
  };
94
+ var getRedirectUrl = function getRedirectUrl() {
95
+ try {
96
+ return localStorage.getItem(REDIRECT_URL);
97
+ } catch (err) {
98
+ return undefined;
99
+ }
100
+ };
91
101
  var encodeParams = function encodeParams(params) {
92
102
  return Object.keys(params).filter(function (key) {
93
103
  return params[key] || params[key] === 0 || params[key] === false;
@@ -393,15 +403,15 @@ var apiUpload = axios.create({
393
403
  var token = getAccessToken();
394
404
  var searchParams = new URLSearchParams(window.location.search);
395
405
  var paramDomain = searchParams.get('domain');
406
+ var paramLang = searchParams.get('lang');
396
407
  var academyDomainStorage = getAcademyDomain();
397
408
  var academyDomain = paramDomain || academyDomainStorage;
398
409
  if (token) {
399
410
  config.headers.Authorization = "Bearer " + token;
400
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
401
- }
402
- if (academyDomain && !config.headers[AcademyHeaders]) {
403
- config.headers[AcademyHeaders] = "" + academyDomain;
411
+ localStorage.setItem("LAST_TIME_REQUEST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
404
412
  }
413
+ if (academyDomain && !config.headers[AcademyHeaders]) config.headers[AcademyHeaders] = "" + academyDomain;
414
+ if (paramLang) config.headers[LanguageHeaders] = "" + paramLang;
405
415
  return config;
406
416
  }, function (error) {
407
417
  return Promise.reject(error);
@@ -411,11 +421,17 @@ var apiUpload = axios.create({
411
421
  return i.interceptors.response.use(function (response) {
412
422
  return response;
413
423
  }, function (error) {
414
- var _error$response, _error$response2;
424
+ var _error$response, _error$response2, _error$response3;
415
425
  console.log({
416
426
  error: error
417
427
  });
418
- if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401 || ((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.status) == 403) {
428
+ if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401) {
429
+ var _window$location = window.location,
430
+ pathname = _window$location.pathname,
431
+ search = _window$location.search;
432
+ if (!pathname.startsWith("/login")) localStorage.setItem(REDIRECT_URL, "" + pathname + search);
433
+ }
434
+ if (((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.status) === 401 || ((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.status) == 403) {
419
435
  localStorage.removeItem(ACCESS_TOKEN);
420
436
  window.location.href = "/login";
421
437
  }
@@ -490,7 +506,15 @@ var pushTo = function pushTo(history, data) {
490
506
  if (history.push) history.push(data);else history(data);
491
507
  };
492
508
 
493
- var ERROR_MESSAGE = "request_login_fail";
509
+ var getErrorMessage = function getErrorMessage(t, error, defaultErrorMessage) {
510
+ var _error$response, _error$response$data, _error$response2, _error$response2$data;
511
+ var errorMessage = error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.title;
512
+ if (typeof errorMessage === "string") return errorMessage;
513
+ errorMessage = (error === null || error === void 0 ? void 0 : error.message) || (error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message);
514
+ if (typeof errorMessage === "string") return errorMessage;
515
+ return defaultErrorMessage || t(DefaultErrorMessage);
516
+ };
517
+
494
518
  var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl) {
495
519
  var dispatch = useDispatch();
496
520
  var _useTranslation = useTranslation(),
@@ -571,14 +595,12 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
571
595
  user = loginResponse.user;
572
596
  var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
573
597
  var needToRegister = isStudent && isFirstLogin && isAcademy;
574
- var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
598
+ var redirectUrl = getRedirectUrl();
599
+ if (!redirectUrl) redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
575
600
  redirectLoginUser(user, token, redirectUrl);
576
601
  });
577
602
  }, function (error) {
578
- var _error$response, _error$response$data, _error$response2, _error$response2$data, _error$response3;
579
- var message = undefined;
580
- message = t((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.message) || (error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.title) || (error === null || error === void 0 ? void 0 : (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data) || ERROR_MESSAGE);
581
- message && alert(message);
603
+ alert(getErrorMessage(t, error));
582
604
  isLogout && handleSignOut();
583
605
  });
584
606
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
@@ -591,7 +613,10 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
591
613
  !data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
592
614
  !!data.academyDomain && localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain);
593
615
  dispatch(setUser(_extends({}, data)));
594
- if (redirectUrl) pushTo(history, redirectUrl);
616
+ if (redirectUrl) {
617
+ pushTo(history, redirectUrl);
618
+ localStorage.removeItem(REDIRECT_URL);
619
+ }
595
620
  };
596
621
  return {
597
622
  handleLoginGoogle: handleLoginGoogle,
@@ -2300,6 +2325,8 @@ var articles = "조항";
2300
2325
  var add_lesson = "레슨 추가";
2301
2326
  var date = "날짜";
2302
2327
  var the_code_has_been_copied_to_your_clipboard = "코드가 클립보드에 복사되었습니다.";
2328
+ var an_unexpected_error_has_occurred = "예상치 못한 오류가 발생했습니다";
2329
+ var select_roles = "역할 선택";
2303
2330
  var lang_ko = {
2304
2331
  problem_solving: problem_solving,
2305
2332
  my_story: my_story,
@@ -2811,7 +2838,9 @@ var lang_ko = {
2811
2838
  articles: articles,
2812
2839
  add_lesson: add_lesson,
2813
2840
  date: date,
2814
- the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard
2841
+ the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard,
2842
+ an_unexpected_error_has_occurred: an_unexpected_error_has_occurred,
2843
+ select_roles: select_roles
2815
2844
  };
2816
2845
 
2817
2846
  var problem_solving$1 = "Problem Solving";
@@ -3357,6 +3386,8 @@ var total_uses$1 = "Total Uses";
3357
3386
  var articles$1 = "Articles";
3358
3387
  var add_lesson$1 = "Add Lesson";
3359
3388
  var the_code_has_been_copied_to_your_clipboard$1 = "The code has been copied to your clipboard";
3389
+ var an_unexpected_error_has_occurred$1 = "An unexpected error has occurred";
3390
+ var select_roles$1 = "Select roles";
3360
3391
  var lang_en = {
3361
3392
  problem_solving: problem_solving$1,
3362
3393
  my_story: my_story$1,
@@ -3895,7 +3926,9 @@ var lang_en = {
3895
3926
  total_uses: total_uses$1,
3896
3927
  articles: articles$1,
3897
3928
  add_lesson: add_lesson$1,
3898
- the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard$1
3929
+ the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard$1,
3930
+ an_unexpected_error_has_occurred: an_unexpected_error_has_occurred$1,
3931
+ select_roles: select_roles$1
3899
3932
  };
3900
3933
 
3901
3934
  i18n.use(initReactI18next).init({
@@ -4119,7 +4152,10 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4119
4152
  history = _ref.history,
4120
4153
  homeAcademyUrl = _ref.homeAcademyUrl,
4121
4154
  homeUrl = _ref.homeUrl,
4155
+ onSignOut = _ref.onSignOut,
4122
4156
  hideAcademyName = _ref.hideAcademyName;
4157
+ var theme = useTheme();
4158
+ var isLargerThanLg = useMediaQuery(theme.breakpoints.up("lg"));
4123
4159
  var _useSwitchAcademy = useSwitchAcademy(role, history, homeAcademyUrl, homeUrl),
4124
4160
  academyList = _useSwitchAcademy.academyList,
4125
4161
  handleSwitchAcademy = _useSwitchAcademy.handleSwitchAcademy,
@@ -4160,18 +4196,19 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4160
4196
  }, selectedAcademy !== null && selectedAcademy !== void 0 && selectedAcademy.image ? React__default.createElement("img", {
4161
4197
  src: selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.image,
4162
4198
  alt: selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.name
4163
- }) : React__default.createElement("span", null, firstLetter)), !hideAcademyName && React__default.createElement(Typography, {
4164
- className: "text-start d-none d-lg-block",
4199
+ }) : React__default.createElement("span", null, firstLetter)), !hideAcademyName && isLargerThanLg && React__default.createElement(Typography, {
4200
+ className: "text-start",
4165
4201
  sx: {
4166
4202
  fontSize: 14,
4167
4203
  fontWeight: 600,
4168
- color: styles.dark,
4204
+ color: styles.gray_900,
4169
4205
  minWidth: 150
4170
4206
  }
4171
4207
  }, (selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.name) || t(role === Role.Admin ? "switch_academy_admin" : "switch_academy")), React__default.createElement("div", {
4172
- className: styles["switch-icon"] + " d-none d-lg-flex"
4208
+ className: "" + styles["switch-icon"]
4173
4209
  }, React__default.createElement(GoArrowSwitch, {
4174
- size: 14
4210
+ size: 14,
4211
+ color: styles.gray_900
4175
4212
  }))), (isSuperAdmin || !isAdmin) && React__default.createElement(Popover, {
4176
4213
  open: !!open,
4177
4214
  anchorEl: open,
@@ -4220,7 +4257,27 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4220
4257
  alt: option.name,
4221
4258
  src: option.image
4222
4259
  }) : React__default.createElement("span", null, (_option$name$charAt = option.name.charAt(0)) === null || _option$name$charAt === void 0 ? void 0 : _option$name$charAt.toUpperCase())), option.name);
4223
- })));
4260
+ }), React__default.createElement(MenuItemCustom, null, React__default.createElement(Stack, {
4261
+ display: "flex",
4262
+ gap: "8px",
4263
+ width: "100%",
4264
+ flexDirection: "row",
4265
+ justifyContent: "center",
4266
+ alignItems: "center",
4267
+ className: "" + styles["userImg"],
4268
+ onClick: onSignOut
4269
+ }, React__default.createElement(IoIosLogOut, {
4270
+ size: 24,
4271
+ color: "#000"
4272
+ }), React__default.createElement(Typography, {
4273
+ sx: {
4274
+ typography: "body2",
4275
+ p: "8px",
4276
+ borderRadius: "4px",
4277
+ fontSize: 14,
4278
+ fontWeight: 700
4279
+ }
4280
+ }, t("logout"))))));
4224
4281
  };
4225
4282
 
4226
4283
  var minutesToTimeSpan = (function (time) {
@@ -14325,22 +14382,31 @@ var Header = function Header(_ref) {
14325
14382
  }
14326
14383
  }, [isTeacher, language]);
14327
14384
  var pathname = location.pathname.toLowerCase();
14328
- return React__default.createElement("div", {
14329
- className: "col-sm-12 col-xl-12 " + styles["tabBox"] + " " + styles["headers"]
14330
- }, React__default.createElement(Link, {
14331
- "aria-current": "page",
14332
- to: homeRoute.path,
14333
- className: "border-none"
14385
+ return React__default.createElement(Stack, {
14386
+ width: "100%",
14387
+ display: "flex",
14388
+ flexDirection: "row",
14389
+ gap: "24px",
14390
+ className: styles["tabBox"] + " " + styles["headers"]
14334
14391
  }, React__default.createElement(Stack, {
14392
+ padding: "10px 0",
14393
+ display: "flex",
14335
14394
  justifyContent: "center",
14336
- height: "100%",
14337
- className: styles["logo"] + " d-none d-lg-flex"
14338
- }, logo), React__default.createElement(Stack, {
14339
- justifyContent: "center",
14340
- height: "100%",
14341
- className: styles["logo"] + " d-flex d-lg-none"
14342
- }, React__default.createElement(singleLogo, null))), React__default.createElement("div", {
14343
- className: styles["routerBox"] + " d-flex flex-grow-1 flex-nowrap px-3"
14395
+ alignItems: "center"
14396
+ }, React__default.createElement(TheAcademyDropdown, {
14397
+ homeAcademyUrl: academyListRoute.path,
14398
+ homeUrl: homeRoute.path,
14399
+ role: role,
14400
+ history: history,
14401
+ hideAcademyName: !isLargerThanXL && headerTabs.length > 6,
14402
+ onSignOut: onSignOut
14403
+ })), React__default.createElement(Stack, {
14404
+ display: "flex",
14405
+ flexGrow: 1,
14406
+ flexWrap: "nowrap",
14407
+ flexDirection: "row",
14408
+ gap: '12px',
14409
+ className: "" + styles["routerBox"]
14344
14410
  }, headerTabs.map(function (_ref2) {
14345
14411
  var path = _ref2.path,
14346
14412
  icon = _ref2.icon,
@@ -14353,7 +14419,7 @@ var Header = function Header(_ref) {
14353
14419
  to: !academyDomain && !isMain ? "#" : path,
14354
14420
  className: "text-decoration-none " + ((activePaths !== null && activePaths !== void 0 && activePaths.length ? activePaths.some(function (a) {
14355
14421
  return pathname.startsWith(a);
14356
- }) : pathname.startsWith(path)) ? styles["router-link-active"] + " " + styles["router-link-exact-active"] : "") + " " + styles["tabText"] + " " + (!academyDomain && !isMain ? styles["disabled-link"] : "")
14422
+ }) : pathname.startsWith(path)) ? "" + styles["router-link-active"] : "") + " " + styles["tabText"] + " " + (!academyDomain && !isMain ? styles["disabled-link"] : "")
14357
14423
  }, React__default.createElement(Stack, {
14358
14424
  sx: {
14359
14425
  justifyContent: "center",
@@ -14362,43 +14428,39 @@ var Header = function Header(_ref) {
14362
14428
  textOverflow: "ellipsis",
14363
14429
  overflow: "hidden",
14364
14430
  display: "flex",
14365
- flexWrap: "nowrap"
14431
+ flexWrap: "nowrap",
14432
+ padding: activePaths !== null && activePaths !== void 0 && activePaths.some(function (a) {
14433
+ return pathname.startsWith(a);
14434
+ }) || pathname.startsWith(path) ? "6px 12px" : "6px 24px"
14366
14435
  }
14367
- }, icon, React__default.createElement("span", {
14368
- className: "text-nowrap"
14369
- }, isLargerThanXL || headerTabs.length < 4 ? t(label) : ellipsisText(t(label), 4))));
14436
+ }, icon, React__default.createElement(Typography, {
14437
+ sx: {
14438
+ textWrap: "nowrap",
14439
+ fontWeight: 700,
14440
+ fontSize: "14px",
14441
+ display: activePaths !== null && activePaths !== void 0 && activePaths.some(function (a) {
14442
+ return pathname.startsWith(a);
14443
+ }) || pathname.startsWith(path) ? 'block' : 'none'
14444
+ }
14445
+ }, t(label))));
14370
14446
  })), React__default.createElement(Stack, {
14371
14447
  direction: "row",
14372
14448
  alignItems: "center"
14373
- }, React__default.createElement(Typography, {
14374
- color: styles.dark,
14375
- className: "fw-bold me-2 text-nowrap",
14376
- sx: {
14377
- minWidth: "60px",
14378
- maxWidth: "120px",
14379
- overflow: "hidden",
14380
- textOverflow: "ellipsis"
14381
- }
14382
- }, user === null || user === void 0 ? void 0 : user.fullName), React__default.createElement("div", null, React__default.createElement(TheAcademyDropdown, {
14383
- homeAcademyUrl: academyListRoute.path,
14384
- homeUrl: homeRoute.path,
14385
- role: role,
14386
- history: history,
14387
- hideAcademyName: !isLargerThanXL && headerTabs.length > 6
14388
- })), React__default.createElement("div", {
14389
- className: "me-2"
14390
- }, React__default.createElement(TheLanguageDropdown, null)), React__default.createElement("div", {
14391
- className: styles["userImg"] + " d-none d-md-none d-lg-block",
14392
- onClick: onSignOut
14393
- }, React__default.createElement("p", {
14394
- className: "text-nowrap mb-0"
14395
- }, t("logout"))), React__default.createElement("div", {
14396
- className: styles["userImg"] + " d-block d-md-block d-lg-none",
14397
- onClick: onSignOut
14398
- }, React__default.createElement(IoIosLogOut, {
14399
- size: 24,
14400
- color: "#959595"
14401
- }))));
14449
+ }, React__default.createElement(Link, {
14450
+ "aria-current": "page",
14451
+ to: homeRoute.path,
14452
+ className: "border-none"
14453
+ }, React__default.createElement(Stack, {
14454
+ justifyContent: "center",
14455
+ height: "100%",
14456
+ className: styles["logo"] + " d-none d-lg-flex"
14457
+ }, logo), React__default.createElement(Stack, {
14458
+ justifyContent: "center",
14459
+ height: "100%",
14460
+ className: styles["logo"] + " d-flex d-lg-none"
14461
+ }, React__default.createElement(singleLogo, null))), React__default.createElement("div", {
14462
+ className: "me-2 d-none"
14463
+ }, React__default.createElement(TheLanguageDropdown, null))));
14402
14464
  };
14403
14465
 
14404
14466
  var ACADEMY_URL$1 = BASE_URL + "/api/academy";
@@ -14551,5 +14613,5 @@ var AcademyList = function AcademyList(_ref) {
14551
14613
  }, React__default.createElement("span", null, t("no_academy_available"), "."))))));
14552
14614
  };
14553
14615
 
14554
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, LayoutContext, Loading, Login, SignIn as LoginWithPassword, NotFound, PUSHER_CONFIG, QuestionCountSelector, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, api, apiUpload, canAccess as canAccessRoute, diffFromNow, formatTime, getAcademyDomain, getAccessToken$1 as getAccessToken, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useGoogleSignOut, useLanguage, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, utcToLocalTime };
14616
+ export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, LayoutContext, Loading, Login, SignIn as LoginWithPassword, NotFound, PUSHER_CONFIG, QuestionCountSelector, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, api, apiUpload, canAccess as canAccessRoute, diffFromNow, formatTime, getAcademyDomain, getAccessToken$1 as getAccessToken, getErrorMessage, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useGoogleSignOut, useLanguage, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, utcToLocalTime };
14555
14617
  //# sourceMappingURL=index.modern.js.map