acsi-core 0.1.39 → 0.1.41

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,12 @@
1
+ import React, { ReactNode } from "react";
2
+ interface IProps {
3
+ id: string;
4
+ content: string | ReactNode;
5
+ children: ReactNode;
6
+ placement?: "left" | "top" | "bottom" | "right";
7
+ isDelay?: boolean;
8
+ timeDelay?: number;
9
+ innerClassName?: string;
10
+ }
11
+ declare const CoreTooltip: (props: IProps) => React.JSX.Element;
12
+ export default CoreTooltip;
@@ -11,3 +11,4 @@ export { default as CoreSearch } from "./CoreSearch";
11
11
  export { default as CoreSelectCompact } from "./CoreSelectCompact";
12
12
  export { default as CoreInputCompact } from "./CoreInputCompact";
13
13
  export { default as CoreTitleInput } from "./CoreTitleInput";
14
+ export { default as CoreTooltip } from "./CoreTooltip";
@@ -1,2 +1,4 @@
1
1
  export declare const getGoogleClientId: () => Promise<import("axios").AxiosResponse<any, any>>;
2
2
  export declare const apiLoginGoogle: (body: any) => Promise<import("axios").AxiosResponse<any, any>>;
3
+ export declare const apiSendEmailCode: (body: any) => Promise<import("axios").AxiosResponse<any, any>>;
4
+ export declare const apiCheckEmailCode: (params: any) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -5,13 +5,19 @@ declare type LoginInfo = {
5
5
  captcha: string;
6
6
  rememberMe: boolean;
7
7
  };
8
- declare const useLogin: () => {
8
+ declare const useLogin: (onNavigate: any) => {
9
9
  defaultInfo: LoginInfo;
10
10
  openLogin: boolean;
11
11
  toggle: () => void;
12
- isShowPassword: boolean;
13
- setIsShowPassword: import("react").Dispatch<import("react").SetStateAction<boolean>>;
12
+ email: string;
13
+ setEmail: import("react").Dispatch<import("react").SetStateAction<string>>;
14
+ loginWithEmail: () => Promise<void>;
14
15
  infoUser: any;
15
16
  setInfoUser: import("react").Dispatch<any>;
17
+ code: string;
18
+ setCode: import("react").Dispatch<import("react").SetStateAction<string>>;
19
+ isScreenCode: boolean;
20
+ formatTime: () => string;
21
+ loginWithEmailCode: () => Promise<void>;
16
22
  };
17
23
  export default useLogin;
package/dist/index.css CHANGED
@@ -56,6 +56,14 @@
56
56
  right: 0; }
57
57
  ._1KLz9 ._2Jo1o ._3zXRp {
58
58
  margin-top: 17px; }
59
+ ._1KLz9 ._2Jo1o ._3zXRp ._8NJga {
60
+ font-size: 14px;
61
+ color: #a6a6ad;
62
+ text-align: left;
63
+ margin-top: 10px; }
64
+ ._1KLz9 ._2Jo1o ._3zXRp ._8NJga span {
65
+ color: #ff0000;
66
+ font-size: 14px; }
59
67
  ._1KLz9 ._2Jo1o ._3zXRp input {
60
68
  width: 100%;
61
69
  outline: none;
@@ -225,7 +233,8 @@
225
233
  ._2sg12 ._1-XBo {
226
234
  font-size: 13px;
227
235
  font-weight: 600;
228
- margin-bottom: 4px; }
236
+ margin-bottom: 4px;
237
+ color: #585869; }
229
238
  ._2sg12 label {
230
239
  font-weight: 400 !important;
231
240
  color: #212126 !important;
@@ -236,7 +245,7 @@
236
245
  align-items: center; }
237
246
  ._3HY4f label {
238
247
  font-size: 14px;
239
- font-weight: 600; }
248
+ font-weight: 400; }
240
249
  ._3HY4f input {
241
250
  width: 16px;
242
251
  height: 16px;
@@ -449,3 +458,6 @@
449
458
  font-size: 18px;
450
459
  font-weight: 700;
451
460
  line-height: 24.55px; }
461
+
462
+ ._1Bmhs {
463
+ cursor: pointer; }
package/dist/index.d.ts CHANGED
@@ -15,11 +15,11 @@ import { ToastContainer, toast } from "react-toastify";
15
15
  import { Role } from "./containers/Login/configs/constants";
16
16
  import CustomPagination from "./components/Paginations/CustomPagination";
17
17
  import useGoogleSignOut from "./utils/hooks/useGoogleSignOut";
18
- import { CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput } from "./components";
18
+ import { CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput, CoreTooltip } from "./components";
19
19
  import { getErrorMessage } from "./utils/getErrorMessage";
20
20
  import { GoogleOAuthProvider } from '@react-oauth/google';
21
21
  import CustomSelect from "./components/Selects/CustomSelect";
22
22
  import CustomAsyncSelect from "./components/Selects/CustomAsyncSelect";
23
23
  import CustomCreatable from "./components/Selects/CustomCreatable";
24
24
  import CustomSelectOption from "./components/Selects/CustomSelectOption";
25
- export { setLoading, setLoadingPage, BASE_URL, OPENSALT_BASE_URL, ACCESS_TOKEN, DATE_TIME_MIN_VALUE, ORGANIZATION_TEAM, ORGANIZATION_TENANT, firstCheckToken, Login, getAccessToken, store, historyCore, setAlert, setUser, setTenant, setAddTenant, setTeam, setMenuCollapse, setIsRefetchSidebar, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, ToastContainer, toast, Role, CustomPagination, useGoogleSignOut, CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput, getErrorMessage, CustomSelect, CustomAsyncSelect, CustomCreatable, CustomSelectOption, GoogleOAuthProvider };
25
+ export { setLoading, setLoadingPage, BASE_URL, OPENSALT_BASE_URL, ACCESS_TOKEN, DATE_TIME_MIN_VALUE, ORGANIZATION_TEAM, ORGANIZATION_TENANT, firstCheckToken, Login, getAccessToken, store, historyCore, setAlert, setUser, setTenant, setAddTenant, setTeam, setMenuCollapse, setIsRefetchSidebar, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, ToastContainer, toast, Role, CustomPagination, useGoogleSignOut, CoreButton, CoreInput, CoreSelect, CoreCheckbox, CoreRadio, CoreError, CoreModal, CoreRange, CoreTextArea, CoreSearch, CoreSelectCompact, CoreInputCompact, CoreTitleInput, CoreTooltip, getErrorMessage, CustomSelect, CustomAsyncSelect, CustomCreatable, CustomSelectOption, GoogleOAuthProvider };
package/dist/index.js CHANGED
@@ -86,7 +86,7 @@ var COLORS = {
86
86
  var ORGANIZATION_TENANT = "ORGANIZATION_TENANT";
87
87
  var ORGANIZATION_TEAM = "ORGANIZATION_TEAM";
88
88
 
89
- var styleGlobal = {"signup_wrap":"_1KLz9","box-signin":"_2Jo1o","signin_title":"_3egBO","signup_link":"_1DoIT","google_button":"_34hK_","box-field":"_2e9xO","box-input":"_3zXRp","box-button-email":"_21FPk","box-signin-container":"_1QERu","box-signin-text":"_2-znH","box-signin-logo":"_1aB2m","box-right":"_3qndF","box-right-body":"_JzdCr","box-right-footer":"_19aCA","pr-30":"_2HB5r"};
89
+ var styleGlobal = {"signup_wrap":"_1KLz9","box-signin":"_2Jo1o","signin_title":"_3egBO","signup_link":"_1DoIT","google_button":"_34hK_","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","box-right-body":"_JzdCr","box-right-footer":"_19aCA","pr-30":"_2HB5r"};
90
90
 
91
91
  var api = axios.create({
92
92
  baseURL: BASE_URL,
@@ -136,12 +136,28 @@ var apiUpload = axios.create({
136
136
  var apiLoginGoogle = function apiLoginGoogle(body) {
137
137
  return api.post(BASE_URL + "/api/Auth/login", body);
138
138
  };
139
+ var apiSendEmailCode = function apiSendEmailCode(body) {
140
+ return api.post(BASE_URL + "/api/Auth/send-code-email", body);
141
+ };
142
+ var apiCheckEmailCode = function apiCheckEmailCode(params) {
143
+ return api.get(BASE_URL + "/api/Auth/check-code-email", {
144
+ params: params
145
+ });
146
+ };
139
147
 
140
148
  var itemLogin = ['Seamless lesson planning', 'Flexibility and customization', 'Data protection and security', 'Standards alignment', 'AI smart assist'];
141
149
 
142
150
  var BlockLogin = function BlockLogin(_ref) {
143
151
  var onNavigate = _ref.onNavigate,
144
- role = _ref.role;
152
+ role = _ref.role,
153
+ email = _ref.email,
154
+ setEmail = _ref.setEmail,
155
+ loginWithEmail = _ref.loginWithEmail,
156
+ code = _ref.code,
157
+ setCode = _ref.setCode,
158
+ isScreenCode = _ref.isScreenCode,
159
+ formatTime = _ref.formatTime,
160
+ loginWithEmailCode = _ref.loginWithEmailCode;
145
161
  var dispatch = reactRedux.useDispatch();
146
162
  var googleLogin = google.useGoogleLogin({
147
163
  onSuccess: function (tokenResponse) {
@@ -154,7 +170,7 @@ var BlockLogin = function BlockLogin(_ref) {
154
170
  return function () {
155
171
  if (userInfo && userInfo.data) {
156
172
  var _userInfo$data = userInfo.data,
157
- email = _userInfo$data.email,
173
+ _email = _userInfo$data.email,
158
174
  picture = _userInfo$data.picture,
159
175
  family_name = _userInfo$data.family_name,
160
176
  given_name = _userInfo$data.given_name,
@@ -166,7 +182,7 @@ var BlockLogin = function BlockLogin(_ref) {
166
182
  fullName: name,
167
183
  firstName: family_name,
168
184
  lastName: given_name,
169
- email: email,
185
+ email: _email,
170
186
  token: accessToken,
171
187
  googleId: sub,
172
188
  role: role
@@ -240,13 +256,40 @@ var BlockLogin = function BlockLogin(_ref) {
240
256
  src: "/images/icons/Google__G__logo.png"
241
257
  }), "Sign in with Google")), role != "Admin" && React__default.createElement(React__default.Fragment, null, React__default.createElement("span", {
242
258
  className: "" + styleGlobal["box-field"]
243
- }, "OR"), React__default.createElement(reactstrap.Form, null, React__default.createElement("div", {
259
+ }, "OR"), isScreenCode ? React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
260
+ className: "" + styleGlobal["box-input"]
261
+ }, React__default.createElement("input", {
262
+ type: "text",
263
+ placeholder: "Code OTP",
264
+ value: code,
265
+ onChange: function onChange(event) {
266
+ setCode(event.target.value);
267
+ }
268
+ }), React__default.createElement("p", {
269
+ className: styleGlobal["box-text"]
270
+ }, "Your code will expire: ", React__default.createElement("span", null, formatTime()))), React__default.createElement("button", {
271
+ onClick: function onClick() {
272
+ return loginWithEmailCode();
273
+ },
274
+ className: "" + styleGlobal["box-button-email"]
275
+ }, React__default.createElement("img", {
276
+ width: 20,
277
+ height: 20,
278
+ alt: "Email sign-in",
279
+ src: "/images/icons/Login_icon.png"
280
+ }), "Login")) : React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
244
281
  className: "" + styleGlobal["box-input"]
245
282
  }, React__default.createElement("input", {
246
283
  type: "email",
247
- placeholder: "Email"
284
+ placeholder: "Email",
285
+ value: email,
286
+ onChange: function onChange(event) {
287
+ setEmail(event.target.value.trim());
288
+ }
248
289
  })), React__default.createElement("button", {
249
- type: "submit",
290
+ onClick: function onClick() {
291
+ !!email && loginWithEmail();
292
+ },
250
293
  className: "" + styleGlobal["box-button-email"]
251
294
  }, React__default.createElement("img", {
252
295
  width: 20,
@@ -311,66 +354,183 @@ var BlockLogin = function BlockLogin(_ref) {
311
354
  }))))))));
312
355
  };
313
356
 
357
+ // A type of promise-like that resolves synchronously and supports only one observer
358
+
359
+ const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
360
+
361
+ const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
362
+
363
+ // Asynchronously call a function and send errors to recovery continuation
364
+ function _catch(body, recover) {
365
+ try {
366
+ var result = body();
367
+ } catch(e) {
368
+ return recover(e);
369
+ }
370
+ if (result && result.then) {
371
+ return result.then(void 0, recover);
372
+ }
373
+ return result;
374
+ }
375
+
314
376
  var defaultInfo = {
315
377
  email: "",
316
378
  password: "",
317
379
  captcha: "",
318
380
  rememberMe: false
319
381
  };
320
- var useLogin = function useLogin() {
382
+ var minutes = 15;
383
+ var useLogin = function useLogin(onNavigate) {
321
384
  var _useState = React.useState(false),
322
385
  openLogin = _useState[0],
323
386
  setOpenLogin = _useState[1];
324
387
  var _useState2 = React.useState(),
325
388
  infoUser = _useState2[0],
326
389
  setInfoUser = _useState2[1];
390
+ var dispatch = reactRedux.useDispatch();
327
391
  var toggle = React.useCallback(function () {
328
392
  setOpenLogin(!openLogin);
329
393
  }, [openLogin]);
330
- var _useState3 = React.useState(false),
331
- isShowPassword = _useState3[0],
332
- setIsShowPassword = _useState3[1];
394
+ var _useState3 = React.useState(""),
395
+ email = _useState3[0],
396
+ setEmail = _useState3[1];
397
+ var _useState4 = React.useState(""),
398
+ code = _useState4[0],
399
+ setCode = _useState4[1];
400
+ var _useState5 = React.useState(false),
401
+ isScreenCode = _useState5[0],
402
+ setIsScreenCode = _useState5[1];
403
+ var _useState6 = React.useState(minutes * 60),
404
+ timeLeft = _useState6[0],
405
+ setTimeLeft = _useState6[1];
406
+ var loginWithEmail = function loginWithEmail() {
407
+ try {
408
+ var _temp2 = function _temp2() {
409
+ dispatch(setLoading(false));
410
+ };
411
+ dispatch(setLoading(true));
412
+ var _temp = _catch(function () {
413
+ return Promise.resolve(apiSendEmailCode(email)).then(function (res) {
414
+ var data = res.data;
415
+ if (data.status == 1) {
416
+ if (data.data.token != null) {
417
+ var tokenJWT = data.data.token;
418
+ localStorage.setItem(ACCESS_TOKEN, tokenJWT);
419
+ onNavigate("/dashboard");
420
+ } else {
421
+ setIsScreenCode(true);
422
+ }
423
+ } else {
424
+ dispatch(setLoading(false));
425
+ alert("Please contact admin.");
426
+ }
427
+ });
428
+ }, function (e) {
429
+ console.log(e);
430
+ });
431
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
432
+ } catch (e) {
433
+ return Promise.reject(e);
434
+ }
435
+ };
436
+ var loginWithEmailCode = function loginWithEmailCode() {
437
+ try {
438
+ var _temp4 = function _temp4() {
439
+ dispatch(setLoading(false));
440
+ };
441
+ dispatch(setLoading(true));
442
+ var _temp3 = _catch(function () {
443
+ return Promise.resolve(apiCheckEmailCode({
444
+ email: email,
445
+ code: code
446
+ })).then(function (res) {
447
+ var data = res.data;
448
+ if (data.status == 1) {
449
+ var tokenJWT = data.data.token;
450
+ localStorage.setItem(ACCESS_TOKEN, tokenJWT);
451
+ onNavigate("/dashboard");
452
+ } else {
453
+ dispatch(setLoading(false));
454
+ alert("The code is not accurate. Please check again.");
455
+ }
456
+ });
457
+ }, function (e) {
458
+ console.log(e);
459
+ });
460
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
461
+ } catch (e) {
462
+ return Promise.reject(e);
463
+ }
464
+ };
465
+ var formatTime = function formatTime() {
466
+ var m = Math.floor(timeLeft / 60);
467
+ var s = timeLeft % 60;
468
+ return m.toString().padStart(2, '0') + ":" + s.toString().padStart(2, '0');
469
+ };
470
+ React.useEffect(function () {
471
+ if (isScreenCode) {
472
+ var timer = setInterval(function () {
473
+ setTimeLeft(function (prev) {
474
+ if (prev <= 1) {
475
+ clearInterval(timer);
476
+ return 0;
477
+ }
478
+ return prev - 1;
479
+ });
480
+ }, 1000);
481
+ return function () {
482
+ return clearInterval(timer);
483
+ };
484
+ }
485
+ return;
486
+ }, [isScreenCode]);
333
487
  return {
334
488
  defaultInfo: defaultInfo,
335
489
  openLogin: openLogin,
336
490
  toggle: toggle,
337
- isShowPassword: isShowPassword,
338
- setIsShowPassword: setIsShowPassword,
491
+ email: email,
492
+ setEmail: setEmail,
493
+ loginWithEmail: loginWithEmail,
339
494
  infoUser: infoUser,
340
- setInfoUser: setInfoUser
495
+ setInfoUser: setInfoUser,
496
+ code: code,
497
+ setCode: setCode,
498
+ isScreenCode: isScreenCode,
499
+ formatTime: formatTime,
500
+ loginWithEmailCode: loginWithEmailCode
341
501
  };
342
502
  };
343
503
 
344
504
  var Login = function Login(props) {
345
505
  var onNavigate = props.onNavigate,
346
506
  role = props.role;
347
- var _useLogin = useLogin(),
348
- defaultInfo = _useLogin.defaultInfo;
507
+ var _useLogin = useLogin(onNavigate),
508
+ defaultInfo = _useLogin.defaultInfo,
509
+ email = _useLogin.email,
510
+ setEmail = _useLogin.setEmail,
511
+ loginWithEmail = _useLogin.loginWithEmail,
512
+ code = _useLogin.code,
513
+ setCode = _useLogin.setCode,
514
+ isScreenCode = _useLogin.isScreenCode,
515
+ formatTime = _useLogin.formatTime,
516
+ loginWithEmailCode = _useLogin.loginWithEmailCode;
349
517
  return React__default.createElement("div", {
350
518
  className: styleGlobal["signup_wrap"] + " container-fluid font-family-lato"
351
519
  }, React__default.createElement(BlockLogin, {
352
520
  defaultInfo: defaultInfo,
521
+ email: email,
522
+ setEmail: setEmail,
523
+ loginWithEmail: loginWithEmail,
524
+ code: code,
525
+ setCode: setCode,
526
+ formatTime: formatTime,
527
+ isScreenCode: isScreenCode,
353
528
  onNavigate: onNavigate,
529
+ loginWithEmailCode: loginWithEmailCode,
354
530
  role: role
355
531
  }));
356
532
  };
357
533
 
358
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
359
-
360
- function unwrapExports (x) {
361
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
362
- }
363
-
364
- function createCommonjsModule(fn, module) {
365
- return module = { exports: {} }, fn(module, module.exports), module.exports;
366
- }
367
-
368
- var reduxLogger = createCommonjsModule(function (module, exports) {
369
- !function(e,t){t(exports);}(commonjsGlobal,function(e){function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}});}function r(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0});}function n(e,t,r){n.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:r,enumerable:!0});}function o(e,t){o.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0});}function i(e,t){i.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0});}function a(e,t,r){a.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:r,enumerable:!0});}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t="undefined"==typeof e?"undefined":N(e);return "object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if("undefined"!=typeof d){if(c){if("function"==typeof c&&c(g,d))return;if("object"===("undefined"==typeof c?"undefined":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1]);}}}g.push(d);}"regexp"===u(e)&&"regexp"===u(t)&&(e=e.toString(),t=t.toString());var y="undefined"==typeof e?"undefined":N(e),v="undefined"==typeof t?"undefined":N(t),b="undefined"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m="undefined"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if("date"===u(e)&&e-t!==0)r(new n(g,e,t));else if("object"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else {if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;for(w=0;w<e.length;w++)w>=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w<t.length;)r(new a(g,w,new o(void 0,t[w++])));}else {var x=Object.keys(e),S=Object.keys(t);x.forEach(function(n,o){var i=S.indexOf(n);i>=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p);}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p);});}p.length=p.length-1;}else e!==t&&("number"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)));}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e);},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case"A":s(o[r.path[n]],r.index,r.item);break;case"D":delete o[r.path[n]];break;case"E":case"N":o[r.path[n]]=r.rhs;}}else switch(r.kind){case"A":s(e[t],r.index,r.item);break;case"D":e=f(e,t);break;case"E":case"N":e[t]=r.rhs;}return e}function d(e,t,r){if(e&&t&&r&&r.kind){for(var n=e,o=-1,i=r.path?r.path.length-1:0;++o<i;)"undefined"==typeof n[r.path[o]]&&(n[r.path[o]]="number"==typeof r.path[o]?[]:{}),n=n[r.path[o]];switch(r.kind){case"A":s(r.path?n[r.path[o]]:n,r.index,r.item);break;case"D":delete n[r.path[o]];break;case"E":case"N":n[r.path[o]]=r.rhs;}}}function p(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case"A":p(o[r.path[n]],r.index,r.item);break;case"D":o[r.path[n]]=r.lhs;break;case"E":o[r.path[n]]=r.lhs;break;case"N":delete o[r.path[n]];}}else switch(r.kind){case"A":p(e[t],r.index,r.item);break;case"D":e[t]=r.lhs;break;case"E":e[t]=r.lhs;break;case"N":e=f(e,t);}return e}function g(e,t,r){if(e&&t&&r&&r.kind){var n,o,i=e;for(o=r.path.length-1,n=0;n<o;n++)"undefined"==typeof i[r.path[n]]&&(i[r.path[n]]={}),i=i[r.path[n]];switch(r.kind){case"A":p(i[r.path[n]],r.index,r.item);break;case"D":i[r.path[n]]=r.lhs;break;case"E":i[r.path[n]]=r.lhs;break;case"N":delete i[r.path[n]];}}}function h(e,t,r){if(e&&t){var n=function(n){r&&!r(e,t,n)||d(e,t,n);};l(e,t,n);}}function y(e){return "color: "+F[e].color+"; font-weight: bold"}function v(e){var t=e.kind,r=e.path,n=e.lhs,o=e.rhs,i=e.index,a=e.item;switch(t){case"E":return [r.join("."),n,"→",o];case"N":return [r.join("."),o];case"D":return [r.join(".")];case"A":return [r.join(".")+"["+i+"]",a];default:return []}}function b(e,t,r,n){var o=c(e,t);try{n?r.groupCollapsed("diff"):r.group("diff");}catch(e){r.log("diff");}o?o.forEach(function(e){var t=e.kind,n=v(e);r.log.apply(r,["%c "+F[t].text,y(t)].concat(P(n)));}):r.log("—— no diff ——");try{r.groupEnd();}catch(e){r.log("—— diff end —— ");}}function m(e,t,r,n){switch("undefined"==typeof e?"undefined":N(e)){case"object":return "function"==typeof e[n]?e[n].apply(e,P(r)):e[n];case"function":return e(t);default:return e}}function w(e){var t=e.timestamp,r=e.duration;return function(e,n,o){var i=["action"];return i.push("%c"+String(e.type)),t&&i.push("%c@ "+n),r&&i.push("%c(in "+o.toFixed(2)+" ms)"),i.join(" ")}}function x(e,t){var r=t.logger,n=t.actionTransformer,o=t.titleFormatter,i=void 0===o?w(t):o,a=t.collapsed,f=t.colors,u=t.level,l=t.diff,c="undefined"==typeof t.titleFormatter;e.forEach(function(o,s){var d=o.started,p=o.startedTime,g=o.action,h=o.prevState,y=o.error,v=o.took,w=o.nextState,x=e[s+1];x&&(w=x.prevState,v=x.started-d);var S=n(g),k="function"==typeof a?a(function(){return w},g,o):a,j=D(p),E=f.title?"color: "+f.title(S)+";":"",A=["color: gray; font-weight: lighter;"];A.push(E),t.timestamp&&A.push("color: gray; font-weight: lighter;"),t.duration&&A.push("color: gray; font-weight: lighter;");var O=i(S,j,v);try{k?f.title&&c?r.groupCollapsed.apply(r,["%c "+O].concat(A)):r.groupCollapsed(O):f.title&&c?r.group.apply(r,["%c "+O].concat(A)):r.group(O);}catch(e){r.log(O);}var N=m(u,S,[h],"prevState"),P=m(u,S,[S],"action"),C=m(u,S,[y,h],"error"),F=m(u,S,[w],"nextState");if(N)if(f.prevState){var L="color: "+f.prevState(h)+"; font-weight: bold";r[N]("%c prev state",L,h);}else r[N]("prev state",h);if(P)if(f.action){var T="color: "+f.action(S)+"; font-weight: bold";r[P]("%c action ",T,S);}else r[P]("action ",S);if(y&&C)if(f.error){var M="color: "+f.error(y,h)+"; font-weight: bold;";r[C]("%c error ",M,y);}else r[C]("error ",y);if(F)if(f.nextState){var _="color: "+f.nextState(w)+"; font-weight: bold";r[F]("%c next state",_,w);}else r[F]("next state",w);l&&b(h,w,r,k);try{r.groupEnd();}catch(e){r.log("—— log end ——");}});}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if("undefined"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport createLogger from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if("function"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l);}catch(e){c.error=o(e);}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&"function"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E("0",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+":"+A(e.getMinutes(),2)+":"+A(e.getSeconds(),2)+"."+A(e.getMilliseconds(),3)},O="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},C=[];k="object"===("undefined"==typeof commonjsGlobal?"undefined":N(commonjsGlobal))&&commonjsGlobal?commonjsGlobal:"undefined"!=typeof window?window:{},j=k.DeepDiff,j&&C.push(function(){"undefined"!=typeof j&&k.DeepDiff===c&&(k.DeepDiff=j,j=void 0);}),t(n,r),t(o,r),t(i,r),t(a,r),Object.defineProperties(c,{diff:{value:c,enumerable:!0},observableDiff:{value:l,enumerable:!0},applyDiff:{value:h,enumerable:!0},applyChange:{value:d,enumerable:!0},revertChange:{value:g,enumerable:!0},isConflict:{value:function(){return "undefined"!=typeof j},enumerable:!0},noConflict:{value:function(){return C&&(C.forEach(function(e){e();}),C=null),c},enumerable:!0}});var F={E:{color:"#2196F3",text:"CHANGED:"},N:{color:"#4CAF50",text:"ADDED:"},D:{color:"#F44336",text:"DELETED:"},A:{color:"#2196F3",text:"ARRAY:"}},L={level:"log",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return "inherit"},prevState:function(){return "#9E9E9E"},action:function(){return "#03A9F4"},nextState:function(){return "#4CAF50"},error:function(){return "#F20404"}},diff:!1,diffPredicate:void 0,transformer:void 0},T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return "function"==typeof t||"function"==typeof r?S()({dispatch:t,getState:r}):void console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,"__esModule",{value:!0});});
370
- });
371
-
372
- var logger = unwrapExports(reduxLogger);
373
-
374
534
  // src/utils/formatProdErrorMessage.ts
375
535
  function formatProdErrorMessage(code) {
376
536
  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;
@@ -597,7 +757,7 @@ var store = toolkit.configureStore({
597
757
  middleware: function middleware(getDefaultMiddleware) {
598
758
  return getDefaultMiddleware({
599
759
  serializableCheck: false
600
- }).concat(logger);
760
+ });
601
761
  }
602
762
  });
603
763
 
@@ -609,25 +769,6 @@ var getAccessToken$1 = (function () {
609
769
  }
610
770
  });
611
771
 
612
- // A type of promise-like that resolves synchronously and supports only one observer
613
-
614
- const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
615
-
616
- const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator";
617
-
618
- // Asynchronously call a function and send errors to recovery continuation
619
- function _catch(body, recover) {
620
- try {
621
- var result = body();
622
- } catch(e) {
623
- return recover(e);
624
- }
625
- if (result && result.then) {
626
- return result.then(void 0, recover);
627
- }
628
- return result;
629
- }
630
-
631
772
  var encodeParams$1 = (function (params) {
632
773
  return Object.keys(params).filter(function (key) {
633
774
  return params[key] || params[key] === 0 || params[key] === false;
@@ -1883,6 +2024,52 @@ var CoreTitleInput = function CoreTitleInput(props) {
1883
2024
  }));
1884
2025
  };
1885
2026
 
2027
+ var styles$d = {"core-tooltip":"_1Bmhs"};
2028
+
2029
+ var CoreTooltip = function CoreTooltip(props) {
2030
+ var id = props.id,
2031
+ content = props.content,
2032
+ children = props.children,
2033
+ placement = props.placement,
2034
+ isDelay = props.isDelay,
2035
+ _props$timeDelay = props.timeDelay,
2036
+ timeDelay = _props$timeDelay === void 0 ? 1500 : _props$timeDelay,
2037
+ innerClassName = props.innerClassName;
2038
+ var timeoutRef = React.useRef(null);
2039
+ var _useState = React.useState(false),
2040
+ isOpenTooltip = _useState[0],
2041
+ setIsOpenTooltip = _useState[1];
2042
+ var handleMouseEnter = function handleMouseEnter() {
2043
+ if (isDelay) {
2044
+ timeoutRef.current = setTimeout(function () {
2045
+ setIsOpenTooltip(true);
2046
+ }, timeDelay);
2047
+ } else {
2048
+ setIsOpenTooltip(true);
2049
+ }
2050
+ };
2051
+ var handleMouseLeave = function handleMouseLeave() {
2052
+ if (timeoutRef.current) {
2053
+ clearTimeout(timeoutRef.current);
2054
+ timeoutRef.current = null;
2055
+ }
2056
+ setIsOpenTooltip(false);
2057
+ };
2058
+ return React__default.createElement("div", {
2059
+ id: id,
2060
+ className: styles$d["core-tooltip"],
2061
+ onMouseEnter: handleMouseEnter,
2062
+ onMouseLeave: handleMouseLeave
2063
+ }, React__default.createElement("div", {
2064
+ className: styles$d["icon"]
2065
+ }, children), content && React__default.createElement(reactstrap.Tooltip, {
2066
+ target: id,
2067
+ isOpen: isOpenTooltip,
2068
+ placement: placement,
2069
+ innerClassName: innerClassName
2070
+ }, content));
2071
+ };
2072
+
1886
2073
  var getErrorMessage = function getErrorMessage(error, defaultErrorMessage) {
1887
2074
  var _error$response, _error$response$data, _error$response2, _error$response3, _error$response3$data;
1888
2075
  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;
@@ -2120,6 +2307,7 @@ exports.CoreSelect = CoreSelect;
2120
2307
  exports.CoreSelectCompact = CoreSelectCompact;
2121
2308
  exports.CoreTextArea = CoreTextArea;
2122
2309
  exports.CoreTitleInput = CoreTitleInput;
2310
+ exports.CoreTooltip = CoreTooltip;
2123
2311
  exports.CustomAsyncSelect = CustomAsyncSelect;
2124
2312
  exports.CustomCreatable = CustomCreatable;
2125
2313
  exports.CustomPagination = CustomPagination;