acsi-core 0.2.0 → 0.2.2

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.
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import "katex/dist/katex.min.css";
3
+ interface MarkdownLatexRenderProps {
4
+ content: string;
5
+ }
6
+ declare const MarkdownLatexRender: React.FC<MarkdownLatexRenderProps>;
7
+ export default MarkdownLatexRender;
@@ -12,3 +12,4 @@ export { default as CoreSelectCompact } from "./CoreSelectCompact";
12
12
  export { default as CoreInputCompact } from "./CoreInputCompact";
13
13
  export { default as CoreTitleInput } from "./CoreTitleInput";
14
14
  export { default as CoreTooltip } from "./CoreTooltip";
15
+ export { default as MarkdownLatexRender } from "./MarkdownLatexRender";
package/dist/index.d.ts CHANGED
@@ -20,7 +20,7 @@ import useAmplitude from "./utils/hooks/useAmplitude";
20
20
  import { AmplitudeEvent } from "./utils/types/amplitude";
21
21
  import initializeAmplitude from "./configs/amplitude";
22
22
  import { initSentry } from "./configs/sentry";
23
- import { CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput, CoreTooltip } from "./components";
23
+ import { CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput, CoreTooltip, MarkdownLatexRender } from "./components";
24
24
  import { getErrorMessage } from "./utils/getErrorMessage";
25
25
  import { GoogleOAuthProvider } from '@react-oauth/google';
26
26
  import CustomSelect from "./components/Selects/CustomSelect";
@@ -29,4 +29,4 @@ import CustomCreatable from "./components/Selects/CustomCreatable";
29
29
  import CustomSelectOption from "./components/Selects/CustomSelectOption";
30
30
  import utcToLocalTime from "./utils/utcToLocalTime";
31
31
  import Cookies from "js-cookie";
32
- export { setLoading, setLoadingPage, BASE_URL, OPENSALT_BASE_URL, ACCESS_TOKEN, DATE_TIME_MIN_VALUE, ORGANIZATION_TEAM, ORGANIZATION_TENANT, firstCheckToken, getImageUrl, Login, utcToLocalTime, getAccessToken, store, historyCore, setAlert, setUser, setTenant, setAddTenant, setTeam, setMenuCollapse, setIsRefetchSidebar, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, ToastContainer, toast, Role, Cookies, CustomPagination, useGoogleSignOut, CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput, CoreTooltip, getErrorMessage, CustomSelect, CustomAsyncSelect, CustomCreatable, CustomSelectOption, GoogleOAuthProvider, useAmplitude, AmplitudeEvent, initializeAmplitude, initSentry };
32
+ export { setLoading, setLoadingPage, BASE_URL, OPENSALT_BASE_URL, ACCESS_TOKEN, DATE_TIME_MIN_VALUE, ORGANIZATION_TEAM, ORGANIZATION_TENANT, firstCheckToken, getImageUrl, Login, utcToLocalTime, getAccessToken, store, historyCore, setAlert, setUser, setTenant, setAddTenant, setTeam, setMenuCollapse, setIsRefetchSidebar, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, ToastContainer, toast, Role, Cookies, CustomPagination, useGoogleSignOut, CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput, CoreTooltip, getErrorMessage, MarkdownLatexRender, CustomSelect, CustomAsyncSelect, CustomCreatable, CustomSelectOption, GoogleOAuthProvider, useAmplitude, AmplitudeEvent, initializeAmplitude, initSentry };
package/dist/index.js CHANGED
@@ -11,12 +11,19 @@ var reactRouterDom = require('react-router-dom');
11
11
  var reactstrap = require('reactstrap');
12
12
  var ReactSelect = require('react-select');
13
13
  var ReactSelect__default = _interopDefault(ReactSelect);
14
+ var ReactMarkdown = _interopDefault(require('react-markdown'));
15
+ var remarkMath = _interopDefault(require('remark-math'));
16
+ var remarkGfm = _interopDefault(require('remark-gfm'));
17
+ var rehypeKatex = _interopDefault(require('rehype-katex'));
18
+ var remarkRehype = _interopDefault(require('remark-rehype'));
19
+ var rehypeRaw = _interopDefault(require('rehype-raw'));
20
+ require('katex/dist/katex.min.css');
14
21
  var Cookies = _interopDefault(require('js-cookie'));
15
22
  var moment = _interopDefault(require('moment'));
16
- var msalBrowser = require('@azure/msal-browser');
17
23
  var reactToastify = require('react-toastify');
18
24
  var reactGoogleLogin = require('@leecheuk/react-google-login');
19
25
  var material = require('@mui/material');
26
+ require('@azure/msal-browser');
20
27
  var amplitude = require('@amplitude/analytics-browser');
21
28
  var Sentry = require('@sentry/react');
22
29
  var fa = require('react-icons/fa');
@@ -80,25 +87,6 @@ var ORGANIZATION_TEAM = "ORGANIZATION_TEAM";
80
87
 
81
88
  var styleGlobal = {"signup_wrap":"_1KLz9","box-signin":"_2Jo1o","signin_title":"_3egBO","signup_link":"_1DoIT","google_button":"_34hK_","microsoft_button":"_19ESb","box-field":"_2e9xO","box-input":"_3zXRp","box-text":"_8NJga","box-button-email":"_21FPk","box-signin-container":"_1QERu","box-signin-text":"_2-znH","box-signin-logo":"_1aB2m","box-right":"_3qndF","image-slideshow":"_1aM7m","active":"_Vx1zf","box-right-body":"_JzdCr","box-right-footer":"_19aCA","pr-30":"_2HB5r","width-400":"_4ehXP"};
82
89
 
83
- function _extends() {
84
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
85
- for (var e = 1; e < arguments.length; e++) {
86
- var t = arguments[e];
87
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
88
- }
89
- return n;
90
- }, _extends.apply(null, arguments);
91
- }
92
- function _objectWithoutPropertiesLoose(r, e) {
93
- if (null == r) return {};
94
- var t = {};
95
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
96
- if (-1 !== e.indexOf(n)) continue;
97
- t[n] = r[n];
98
- }
99
- return t;
100
- }
101
-
102
90
  // A type of promise-like that resolves synchronously and supports only one observer
103
91
 
104
92
  const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
@@ -118,6 +106,25 @@ function _catch(body, recover) {
118
106
  return result;
119
107
  }
120
108
 
109
+ function _extends() {
110
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
111
+ for (var e = 1; e < arguments.length; e++) {
112
+ var t = arguments[e];
113
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
114
+ }
115
+ return n;
116
+ }, _extends.apply(null, arguments);
117
+ }
118
+ function _objectWithoutPropertiesLoose(r, e) {
119
+ if (null == r) return {};
120
+ var t = {};
121
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
122
+ if (-1 !== e.indexOf(n)) continue;
123
+ t[n] = r[n];
124
+ }
125
+ return t;
126
+ }
127
+
121
128
  var styles = {"core-button":"_xvNBN","primary":"_U9Qyp","secondary":"_1VzMy","text":"_pZNuj","danger":"_2uYm1","light":"_wxH5S"};
122
129
 
123
130
  var _excluded = ["type", "children", "onClick", "icon", "disabled", "htmlType"];
@@ -1076,6 +1083,22 @@ var CoreTooltip = function CoreTooltip(_ref) {
1076
1083
  }, content));
1077
1084
  };
1078
1085
 
1086
+ var _excluded$3 = ["node"];
1087
+ var MarkdownLatexRender = function MarkdownLatexRender(_ref) {
1088
+ var content = _ref.content;
1089
+ var updatedMarkdown = content.replace(/\\\(/g, "$$").replace(/\\\)/g, "$$").replace(/\\\[/g, "$$$$").replace(/\\\]\s*\./g, "$$$$").replace(/\\\]/g, "$$$$").replace(/<br\s*\/?>/g, "\n\n");
1090
+ return React__default.createElement("span", null, React__default.createElement(ReactMarkdown, {
1091
+ remarkPlugins: [remarkMath, remarkGfm, remarkRehype],
1092
+ rehypePlugins: [rehypeKatex, rehypeRaw],
1093
+ components: {
1094
+ p: function p(_ref2) {
1095
+ var props = _objectWithoutPropertiesLoose(_ref2, _excluded$3);
1096
+ return React__default.createElement("span", Object.assign({}, props));
1097
+ }
1098
+ }
1099
+ }, updatedMarkdown));
1100
+ };
1101
+
1079
1102
  var CookieService = /*#__PURE__*/function () {
1080
1103
  function CookieService() {}
1081
1104
  CookieService.setAuthCookie = function setAuthCookie(data) {
@@ -1228,55 +1251,6 @@ var TypeLogin;
1228
1251
  TypeLogin[TypeLogin["Microsoft"] = 3] = "Microsoft";
1229
1252
  })(TypeLogin || (TypeLogin = {}));
1230
1253
 
1231
- var AuthenticationMessage;
1232
- (function (AuthenticationMessage) {
1233
- AuthenticationMessage["NotAllowedToRegister"] = "NotAllowedToRegister";
1234
- AuthenticationMessage["InvalidGoogleToken"] = "InvalidGoogleToken";
1235
- })(AuthenticationMessage || (AuthenticationMessage = {}));
1236
- (function (Role) {
1237
- Role["Student"] = "Student";
1238
- Role["Teacher"] = "Teacher";
1239
- Role["Admin"] = "Admin";
1240
- })(exports.Role || (exports.Role = {}));
1241
- var msalConfig = function msalConfig(clientId, redirectUri) {
1242
- return {
1243
- auth: {
1244
- clientId: clientId,
1245
- authority: "https://login.microsoftonline.com/common",
1246
- redirectUri: redirectUri
1247
- },
1248
- cache: {
1249
- cacheLocation: "sessionStorage",
1250
- storeAuthStateInCookie: false
1251
- },
1252
- system: {
1253
- loggerOptions: {
1254
- loggerCallback: function loggerCallback(level, message, containsPii) {
1255
- if (containsPii) {
1256
- return;
1257
- }
1258
- switch (level) {
1259
- case msalBrowser.LogLevel.Error:
1260
- console.error(message);
1261
- return;
1262
- case msalBrowser.LogLevel.Info:
1263
- console.info(message);
1264
- return;
1265
- case msalBrowser.LogLevel.Verbose:
1266
- console.debug(message);
1267
- return;
1268
- case msalBrowser.LogLevel.Warning:
1269
- console.warn(message);
1270
- return;
1271
- default:
1272
- return;
1273
- }
1274
- }
1275
- }
1276
- }
1277
- };
1278
- };
1279
-
1280
1254
  var BlockLogin = function BlockLogin(_ref) {
1281
1255
  var onNavigate = _ref.onNavigate,
1282
1256
  role = _ref.role,
@@ -1411,91 +1385,6 @@ var BlockLogin = function BlockLogin(_ref) {
1411
1385
  return console.log(errorResponse);
1412
1386
  }
1413
1387
  });
1414
- var fnLoginMicrosoft = function fnLoginMicrosoft() {
1415
- try {
1416
- var msalInstance = new msalBrowser.PublicClientApplication(msalConfig(MICROSOFT_CLIENT_ID, MICROSOFT_URL_DIRECT));
1417
- if (!msalInstance) {
1418
- console.error("MSAL instance not initialized");
1419
- return Promise.resolve();
1420
- }
1421
- return Promise.resolve(_catch(function () {
1422
- return Promise.resolve(msalInstance.initialize()).then(function () {
1423
- var loginRequest = {
1424
- scopes: ["openid", "profile", "email"]
1425
- };
1426
- var silentRequest = _extends({}, loginRequest, {
1427
- prompt: "select_account"
1428
- });
1429
- return Promise.resolve(msalInstance.loginPopup(silentRequest)).then(function (response) {
1430
- return function () {
1431
- if (response && response.account) {
1432
- var account = response.account;
1433
- var fullName = (account === null || account === void 0 ? void 0 : account.name) || "";
1434
- var infoLogin = {
1435
- firstName: fullName.split(' ').slice(0, -1).join(' '),
1436
- lastName: fullName.split(' ').slice(-1).join(' '),
1437
- fullName: fullName,
1438
- imageUrl: "",
1439
- email: (account === null || account === void 0 ? void 0 : account.username) || "",
1440
- token: (response === null || response === void 0 ? void 0 : response.accessToken) || "",
1441
- googleId: (account === null || account === void 0 ? void 0 : account.homeAccountId) || "",
1442
- role: role,
1443
- type: TypeLogin.Microsoft
1444
- };
1445
- dispatch(setLoading(true));
1446
- return Promise.resolve(apiLoginGoogle(infoLogin)).then(function (authResult) {
1447
- var _authResult$data2;
1448
- if (((_authResult$data2 = authResult.data) === null || _authResult$data2 === void 0 ? void 0 : _authResult$data2.id) == null) {
1449
- dispatch(setLoading(false));
1450
- alert("Please contact admin.");
1451
- return;
1452
- }
1453
- localStorage.clear();
1454
- var tokenJWT = authResult.data.token;
1455
- trackEvent === null || trackEvent === void 0 ? void 0 : trackEvent({
1456
- eventName: exports.AmplitudeEvent.LOGIN,
1457
- eventProperties: {
1458
- email: email,
1459
- login_method: 'google',
1460
- user_role: authResult.data.role,
1461
- success: true,
1462
- timestamp: new Date().toISOString()
1463
- }
1464
- });
1465
- if (role === "LandingPage") {
1466
- CookieService.setAuthCookie({
1467
- token: tokenJWT,
1468
- expiresAt: Date.now() + 24 * 60 * 60 * 1000
1469
- });
1470
- var getRedirectUrl = function getRedirectUrl(role) {
1471
- switch (role) {
1472
- case "Admin":
1473
- return ADMIN_ORIGIN;
1474
- case "Teacher":
1475
- return TEACHER_ORIGIN;
1476
- default:
1477
- return role + "." + REQUEST_ORIGIN;
1478
- }
1479
- };
1480
- var redirectUrl = getRedirectUrl(authResult.data.role);
1481
- window.location.href = redirectUrl + "/dashboard";
1482
- dispatch(setLoading(false));
1483
- }
1484
- localStorage.setItem(ACCESS_TOKEN, tokenJWT);
1485
- onNavigate("/dashboard");
1486
- dispatch(setLoading(false));
1487
- });
1488
- }
1489
- }();
1490
- });
1491
- });
1492
- }, function (error) {
1493
- console.error("Microsoft login error:", error);
1494
- }));
1495
- } catch (e) {
1496
- return Promise.reject(e);
1497
- }
1498
- };
1499
1388
  React__default.useEffect(function () {
1500
1389
  return function () {
1501
1390
  if (resendTimer) {
@@ -1603,18 +1492,7 @@ var BlockLogin = function BlockLogin(_ref) {
1603
1492
  height: 24,
1604
1493
  alt: "Google sign-in",
1605
1494
  src: "/images/icons/Google__G__logo.png"
1606
- }), "Sign in with Google")), React__default.createElement("div", {
1607
- className: "" + styleGlobal["microsoft_button"]
1608
- }, React__default.createElement("button", {
1609
- onClick: function onClick() {
1610
- return fnLoginMicrosoft();
1611
- }
1612
- }, React__default.createElement("img", {
1613
- width: 24,
1614
- height: 24,
1615
- alt: "Google sign-in",
1616
- src: "/images/Single-Sign-On-logo.png"
1617
- }), "Sign in with Microsoft")), React__default.createElement("span", {
1495
+ }), "Sign in with Google")), React__default.createElement("span", {
1618
1496
  className: "" + styleGlobal["box-field"]
1619
1497
  }, "OR"), React__default.createElement("div", {
1620
1498
  className: "" + styleGlobal["box-input"]
@@ -2444,6 +2322,17 @@ var CommonDialog = function CommonDialog(_ref) {
2444
2322
  }, title)), children);
2445
2323
  };
2446
2324
 
2325
+ var AuthenticationMessage;
2326
+ (function (AuthenticationMessage) {
2327
+ AuthenticationMessage["NotAllowedToRegister"] = "NotAllowedToRegister";
2328
+ AuthenticationMessage["InvalidGoogleToken"] = "InvalidGoogleToken";
2329
+ })(AuthenticationMessage || (AuthenticationMessage = {}));
2330
+ (function (Role) {
2331
+ Role["Student"] = "Student";
2332
+ Role["Teacher"] = "Teacher";
2333
+ Role["Admin"] = "Admin";
2334
+ })(exports.Role || (exports.Role = {}));
2335
+
2447
2336
  var CustomPagination = function CustomPagination(_ref) {
2448
2337
  var currentPage = _ref.currentPage,
2449
2338
  totalPage = _ref.totalPage,
@@ -2730,7 +2619,10 @@ function initSentry(dsn, release) {
2730
2619
  dsn: dsn,
2731
2620
  tracesSampleRate: 1.0,
2732
2621
  release: release,
2733
- sendDefaultPii: true
2622
+ sendDefaultPii: true,
2623
+ integrations: [Sentry.replayIntegration()],
2624
+ replaysSessionSampleRate: 0.1,
2625
+ replaysOnErrorSampleRate: 1.0
2734
2626
  });
2735
2627
  }
2736
2628
 
@@ -2799,7 +2691,7 @@ var CustomOption = function CustomOption(props) {
2799
2691
  }, props.data.label));
2800
2692
  };
2801
2693
 
2802
- var _excluded$3 = ["isDefault", "defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2694
+ var _excluded$4 = ["isDefault", "defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2803
2695
  var CustomSelect = function CustomSelect(_ref) {
2804
2696
  var isDefault = _ref.isDefault,
2805
2697
  options = _ref.options,
@@ -2807,7 +2699,7 @@ var CustomSelect = function CustomSelect(_ref) {
2807
2699
  scrollBottom = _ref.scrollBottom,
2808
2700
  value = _ref.value,
2809
2701
  isMulti = _ref.isMulti,
2810
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
2702
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
2811
2703
  var initialValues = Array.isArray(value) ? options.filter(function (i) {
2812
2704
  return value.includes(i.value);
2813
2705
  }) : isMulti ? options === null || options === void 0 ? void 0 : options.filter(function (i) {
@@ -2834,7 +2726,7 @@ var CustomSelect = function CustomSelect(_ref) {
2834
2726
  }, rest));
2835
2727
  };
2836
2728
 
2837
- var _excluded$4 = ["isDefault", "defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2729
+ var _excluded$5 = ["isDefault", "defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2838
2730
  var CustomAsyncSelect = function CustomAsyncSelect(_ref) {
2839
2731
  var isDefault = _ref.isDefault,
2840
2732
  options = _ref.options,
@@ -2842,7 +2734,7 @@ var CustomAsyncSelect = function CustomAsyncSelect(_ref) {
2842
2734
  scrollBottom = _ref.scrollBottom,
2843
2735
  value = _ref.value,
2844
2736
  isMulti = _ref.isMulti,
2845
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
2737
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
2846
2738
  var initialValues = Array.isArray(value) ? options.filter(function (i) {
2847
2739
  return value.includes(i.value);
2848
2740
  }) : isMulti ? options.filter(function (i) {
@@ -2869,14 +2761,14 @@ var CustomAsyncSelect = function CustomAsyncSelect(_ref) {
2869
2761
  }, rest));
2870
2762
  };
2871
2763
 
2872
- var _excluded$5 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2764
+ var _excluded$6 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2873
2765
  var CustomCreatable = function CustomCreatable(_ref) {
2874
2766
  var options = _ref.options,
2875
2767
  isDisabled = _ref.isDisabled,
2876
2768
  scrollBottom = _ref.scrollBottom,
2877
2769
  value = _ref.value,
2878
2770
  isMulti = _ref.isMulti,
2879
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
2771
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
2880
2772
  var initialValues = Array.isArray(value) ? options.filter(function (i) {
2881
2773
  return value.includes(i.value);
2882
2774
  }) : isMulti ? options.filter(function (i) {
@@ -2903,7 +2795,7 @@ var CustomCreatable = function CustomCreatable(_ref) {
2903
2795
  }, rest));
2904
2796
  };
2905
2797
 
2906
- var _excluded$6 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2798
+ var _excluded$7 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
2907
2799
  var CustomSelectOption = function CustomSelectOption(_ref) {
2908
2800
  var defaultValue = _ref.defaultValue,
2909
2801
  options = _ref.options,
@@ -2911,7 +2803,7 @@ var CustomSelectOption = function CustomSelectOption(_ref) {
2911
2803
  scrollBottom = _ref.scrollBottom,
2912
2804
  value = _ref.value,
2913
2805
  isMulti = _ref.isMulti,
2914
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
2806
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
2915
2807
  var initialValues = defaultValue !== null && typeof defaultValue !== "undefined" ? options.find(function (option) {
2916
2808
  return option.value === defaultValue;
2917
2809
  }) || null : null;
@@ -2991,6 +2883,7 @@ exports.DATE_TIME_MIN_VALUE = DATE_TIME_MIN_VALUE;
2991
2883
  exports.LayoutContext = LayoutContext;
2992
2884
  exports.Loading = Loading;
2993
2885
  exports.Login = Login;
2886
+ exports.MarkdownLatexRender = MarkdownLatexRender;
2994
2887
  exports.NotFound = NotFound;
2995
2888
  exports.OPENSALT_BASE_URL = OPENSALT_BASE_URL;
2996
2889
  exports.ORGANIZATION_TEAM = ORGANIZATION_TEAM;