touchstudy-core 0.1.33 → 0.1.35

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,6 @@
1
+ import { ExamRequestBody } from "../configs/types";
2
+ export declare const createExam: (data: ExamRequestBody) => Promise<import("axios").AxiosResponse<any, any>>;
3
+ export declare const updateExam: (data: ExamRequestBody, examId: number) => Promise<import("axios").AxiosResponse<any, any>>;
4
+ export declare const apiCreateExamSession: (examId: number) => Promise<import("axios").AxiosResponse<any, any>>;
5
+ export declare const apiDeleteExam: (examId: number) => Promise<import("axios").AxiosResponse<any, any>>;
6
+ export declare const apiDeleteExamSession: (examId: number, examSessionId: number) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -0,0 +1,10 @@
1
+ import { Exam } from "../../Exams/configs/types";
2
+ export declare const increaseDuration: (id: number, data: string) => Promise<import("axios").AxiosResponse<any, any>>;
3
+ export declare const terminateExam: (id: number) => Promise<import("axios").AxiosResponse<any, any>>;
4
+ export declare const getListExamSession: (query: Exam) => Promise<import("axios").AxiosResponse<any, any>>;
5
+ export declare const startExam: (examId: number) => Promise<import("axios").AxiosResponse<any, any>>;
6
+ export declare const checkStatusExamApi: (code: string) => Promise<import("axios").AxiosResponse<any, any>>;
7
+ export declare const apiDeleteExam: (examId: number) => Promise<import("axios").AxiosResponse<any, any>>;
8
+ export declare const apiActivePendingExam: (id: number) => Promise<import("axios").AxiosResponse<any, any>>;
9
+ export declare const apiKickOutStudent: (studentId: number, examCode: string) => Promise<import("axios").AxiosResponse<any, any>>;
10
+ export declare const apiGetJoinedStudents: (examCode: string) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -0,0 +1,10 @@
1
+ import { FC } from "react";
2
+ import { ChapterOption } from "../../configs/types";
3
+ interface Props {
4
+ open: boolean;
5
+ chapter?: ChapterOption;
6
+ onClose: () => void;
7
+ onSubmitForm: (name: string) => void;
8
+ }
9
+ declare const ChapterNameDialog: FC<Props>;
10
+ export default ChapterNameDialog;
@@ -0,0 +1,11 @@
1
+ import { FC, MouseEventHandler } from "react";
2
+ import { ExamDetailViewProps } from "../../../Exams/configs/interfaces";
3
+ interface Props extends ExamDetailViewProps {
4
+ isOpen: boolean;
5
+ onClose: Function;
6
+ isEdit?: boolean;
7
+ onSubmit: Function;
8
+ handleSaveExam: MouseEventHandler<HTMLDivElement>;
9
+ }
10
+ declare const CreateExamDrawer: FC<Props>;
11
+ export default CreateExamDrawer;
@@ -1,5 +1,9 @@
1
+ import { Exam } from "../../Exams/configs/types";
1
2
  import { ArticleCreateRequest, TextbookDetailResponse, TextbookHeaderTable, TextbookSearchQuery } from "./types";
2
3
  export declare const TEXTBOOK_HEADERS: TextbookHeaderTable[];
4
+ export declare const DEFAULT_ANSWER_COUNT = 5;
5
+ export declare const ANSWERS_COUNT: number[];
6
+ export declare const DEFAULT_EXAM_REQUEST: Exam;
3
7
  export declare const TEXTBOOK_PAGE_TITLE: string;
4
8
  export declare const TEXT_BOOK_SEARCH_PLACEHOLDER: string;
5
9
  export declare const TextbookDefaultQuery: TextbookSearchQuery;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ChapterResponse, SubjectResponse, ChapterOption, ArticleResponse } from "./types";
2
3
  export interface ChapterBoxProps {
3
4
  parentChapterId?: number;
@@ -10,6 +11,7 @@ export interface ChapterBoxProps {
10
11
  onChangePageFrom?: (value: number, chapterId: number, parentChapterId?: number) => void;
11
12
  onChangePageTo?: (value: number, chapterId: number, parentChapterId?: number) => void;
12
13
  onAddArticle?: (chapter: ChapterResponse, callback?: Function) => void;
14
+ handleCheckArticle: (e: React.ChangeEvent<HTMLInputElement>, article: ArticleResponse) => void;
13
15
  onRemoveArticle?: (articleNumber: number, chapterName: string, articles: ArticleResponse[], chapterId: number, parentChapterId?: number, callback?: Function) => void;
14
16
  onUpdateArticleQuestionCount?: (articleNumber: number, questionCount: number, answerCount: number, articles: ArticleResponse[], chapterId: number, parentChapterId?: number, callback?: Function) => void;
15
17
  onUpdateArticleCategory?: (articleNumber: number, categoryId: number, articles: ArticleResponse[], chapterId: number, parentChapterId?: number, callback?: Function) => void;
@@ -120,3 +120,39 @@ export declare type DeleteItem = {
120
120
  value?: ArticleResponse[];
121
121
  confirmText: string;
122
122
  };
123
+ export declare type ExamRequestBody = {
124
+ id?: number | string;
125
+ title: string;
126
+ duration: string;
127
+ };
128
+ export declare type ExamSession = {
129
+ id?: number;
130
+ examId?: number;
131
+ title: string;
132
+ duration: string;
133
+ type: ExamType;
134
+ numberOfQuestion: number;
135
+ code: string;
136
+ createdAt: string;
137
+ examCreatedAt: string;
138
+ startTime: string;
139
+ status?: ExamStatusNumber;
140
+ totalStudentsJoined?: number;
141
+ teacher?: any;
142
+ };
143
+ export declare enum ExamType {
144
+ Normal = "Normal",
145
+ Standard = "Standard"
146
+ }
147
+ export declare enum ExamStatus {
148
+ Default = "Default",
149
+ Pending = "Pending",
150
+ InProgress = "InProgress",
151
+ Completed = "Completed"
152
+ }
153
+ export declare enum ExamStatusNumber {
154
+ Default = 0,
155
+ Pending = 1,
156
+ InProgress = 2,
157
+ Completed = 3
158
+ }
@@ -0,0 +1,16 @@
1
+ import { Exam } from "../../Exams/configs/types";
2
+ interface Props {
3
+ keep?: boolean;
4
+ callback?: () => Promise<void>;
5
+ navigate?: any;
6
+ }
7
+ declare const useExam: (props: Props) => {
8
+ isOpenDialog: boolean;
9
+ examRequest: Exam;
10
+ handleChangeExamRequest: (value: Exam) => void;
11
+ handleOpenCreateExamDialog: () => void;
12
+ handleSaveExam: () => Promise<void>;
13
+ handleCloseDialog: () => void;
14
+ handleCreateExam: () => Promise<void>;
15
+ };
16
+ export default useExam;
@@ -17,6 +17,15 @@ declare const useTextbookDetail: (props: TextbookDetailProps) => {
17
17
  selectedDeleteItem: DeleteItem | undefined;
18
18
  isEditedTitle: boolean;
19
19
  isReadonlyParam: boolean | undefined;
20
+ articlesSelected: number[];
21
+ isOpenDialog: boolean;
22
+ examRequest: import("../../..").Exam;
23
+ handleChangeExamRequest: (value: import("../../..").Exam) => void;
24
+ handleCheckArticle: (e: React.ChangeEvent<HTMLInputElement>, article: ArticleResponse) => void;
25
+ handleOpenCreateExamDialog: () => void;
26
+ handleSaveExam: () => Promise<void>;
27
+ handleCloseDialog: () => void;
28
+ handleCreateExam: () => Promise<void>;
20
29
  handleChangeTextbookTitle: (e: ChangeEvent<HTMLInputElement>) => void;
21
30
  handleCreateOrUpdateTextbook: () => Promise<void>;
22
31
  handleChangeTextbookSubject: (val: any) => void;
package/dist/index.css CHANGED
@@ -6,7 +6,7 @@
6
6
  font-weight: 700; }
7
7
 
8
8
  ._wWIyO {
9
- border: 1px solid #ECEAE9;
9
+ border: 1px solid #eceae9;
10
10
  padding: 60px;
11
11
  border-radius: 6px;
12
12
  width: -moz-max-content;
@@ -23,10 +23,38 @@
23
23
  height: 100vh; }
24
24
 
25
25
  ._2HqmH {
26
- border: 1px solid #AEABAC !important;
26
+ border: 1px solid #aeabac !important;
27
27
  border-radius: 5px !important;
28
28
  box-shadow: unset !important; }
29
29
 
30
+ ._rd4Uy {
31
+ display: inline-block;
32
+ padding: 0.375rem 0.75rem;
33
+ font-size: 1rem;
34
+ font-weight: 400;
35
+ line-height: 1.5;
36
+ color: #fff;
37
+ text-align: center;
38
+ text-decoration: none;
39
+ vertical-align: middle;
40
+ cursor: pointer;
41
+ -webkit-user-select: none;
42
+ -moz-user-select: none;
43
+ user-select: none;
44
+ border: 1px solid #0d6efd;
45
+ border-radius: 0.375rem;
46
+ background-color: #0d6efd;
47
+ transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; }
48
+ ._rd4Uy:hover {
49
+ color: #fff;
50
+ background-color: #0b5ed7;
51
+ border-color: #0a58ca; }
52
+ ._rd4Uy:disabled {
53
+ color: #fff;
54
+ background-color: #0d6efd;
55
+ border-color: #0d6efd;
56
+ opacity: 0.65; }
57
+
30
58
  ._1krbH ._RQaHE {
31
59
  border: none;
32
60
  background-color: transparent;
@@ -125,7 +153,7 @@
125
153
 
126
154
  ._3CMVp {
127
155
  max-width: 268px;
128
- border: 1px solid #EBEBFF !important;
156
+ border: 1px solid #ebebff !important;
129
157
  border-radius: 6px !important;
130
158
  display: flex !important;
131
159
  justify-content: space-between !important; }
@@ -134,29 +162,38 @@
134
162
  width: 40px;
135
163
  height: 40px;
136
164
  border-radius: 50%;
137
- margin-right: 12px;
138
165
  display: flex;
139
166
  justify-content: center;
140
167
  align-items: center;
141
168
  font-size: 20px;
142
169
  font-weight: 600;
143
170
  line-height: 1;
144
- background-color: #5458D5;
145
- color: #FFF; }
171
+ background-color: #5458d5;
172
+ color: #fff; }
173
+ ._3RDWF {
174
+ margin-right: 12px; }
146
175
  ._2ibYC img {
147
176
  width: 100%;
148
177
  height: 100%;
149
178
  border-radius: 50%;
150
179
  -o-object-fit: cover;
151
180
  object-fit: cover; }
181
+ @media (min-width: 992px) {
182
+ ._2ibYC {
183
+ margin-right: 12px; } }
152
184
 
153
185
  ._1JMRU {
154
186
  max-width: 268px;
155
- padding: 8px !important;
156
- border: 1px solid #EBEBFF !important;
157
- border-radius: 6px !important;
187
+ border: 1px solid #ebebff !important;
188
+ border-radius: 50% !important;
189
+ padding: 0px !important;
190
+ min-width: unset !important;
158
191
  display: flex !important;
159
192
  justify-content: space-between !important; }
193
+ @media (min-width: 992px) {
194
+ ._1JMRU {
195
+ border-radius: 6px !important;
196
+ padding: 8px !important; } }
160
197
 
161
198
  ._N4FNf {
162
199
  width: 34px;
@@ -165,7 +202,7 @@
165
202
  justify-content: center;
166
203
  align-items: center; }
167
204
  ._N4FNf svg {
168
- fill: #5458D5; }
205
+ fill: #5458d5; }
169
206
 
170
207
  ._31Dr0 {
171
208
  width: 100%;
@@ -194,31 +231,31 @@
194
231
  display: flex;
195
232
  flex-wrap: wrap;
196
233
  margin-top: calc(-1 * var(--bs-gutter-y));
197
- margin-right: calc(-.5 * var(--bs-gutter-x));
198
- margin-left: calc(-.5 * var(--bs-gutter-x)); }
234
+ margin-right: calc(-0.5 * var(--bs-gutter-x));
235
+ margin-left: calc(-0.5 * var(--bs-gutter-x)); }
199
236
  ._31ZQk ._3yXyK {
200
- flex: 0 0 calc((2/12)*100%);
201
- max-width: calc((2/12)*100%);
202
- padding-right: calc(var(--bs-gutter-x) * .5);
203
- padding-left: calc(var(--bs-gutter-x) * .5);
237
+ flex: 0 0 calc((2 / 12) * 100%);
238
+ max-width: calc((2 / 12) * 100%);
239
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
240
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
204
241
  margin-top: var(--bs-gutter-y); }
205
242
  ._31ZQk ._1RsJQ {
206
243
  flex: 0 0 25%;
207
244
  max-width: 25%;
208
- padding-right: calc(var(--bs-gutter-x) * .5);
209
- padding-left: calc(var(--bs-gutter-x) * .5);
245
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
246
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
210
247
  margin-top: var(--bs-gutter-y); }
211
248
  ._31ZQk ._L42CP {
212
- flex: 0 0 calc((5/12)*100%);
213
- max-width: calc((5/12)*100%);
214
- padding-right: calc(var(--bs-gutter-x) * .5);
215
- padding-left: calc(var(--bs-gutter-x) * .5);
249
+ flex: 0 0 calc((5 / 12) * 100%);
250
+ max-width: calc((5 / 12) * 100%);
251
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
252
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
216
253
  margin-top: var(--bs-gutter-y); }
217
254
  ._31ZQk ._2u6eL {
218
- flex: 0 0 calc((10/12)*100%);
219
- max-width: calc((10/12)*100%);
220
- padding-right: calc(var(--bs-gutter-x) * .5);
221
- padding-left: calc(var(--bs-gutter-x) * .5);
255
+ flex: 0 0 calc((10 / 12) * 100%);
256
+ max-width: calc((10 / 12) * 100%);
257
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
258
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
222
259
  margin-top: var(--bs-gutter-y); }
223
260
 
224
261
  ._8x7OP {
@@ -227,44 +264,44 @@
227
264
  display: flex;
228
265
  flex-wrap: wrap;
229
266
  margin-top: calc(-1 * var(--bs-gutter-y));
230
- margin-right: calc(-.5 * var(--bs-gutter-x));
231
- margin-left: calc(-.5 * var(--bs-gutter-x)); }
267
+ margin-right: calc(-0.5 * var(--bs-gutter-x));
268
+ margin-left: calc(-0.5 * var(--bs-gutter-x)); }
232
269
  ._8x7OP ._1JmTh {
233
270
  flex: 1 0;
234
271
  width: 100%;
235
272
  max-width: 100%;
236
- padding-right: calc(var(--bs-gutter-x) * .5);
237
- padding-left: calc(var(--bs-gutter-x) * .5);
273
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
274
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
238
275
  margin-top: var(--bs-gutter-y); }
239
276
  ._8x7OP ._1RsJQ {
240
277
  flex: 0 0 25%;
241
278
  max-width: 25%;
242
- padding-right: calc(var(--bs-gutter-x) * .5);
243
- padding-left: calc(var(--bs-gutter-x) * .5);
279
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
280
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
244
281
  margin-top: var(--bs-gutter-y); }
245
282
  ._8x7OP ._3HO1e {
246
- flex: 0 0 calc((4/12)*100%);
247
- max-width: calc((4/12)*100%);
248
- padding-right: calc(var(--bs-gutter-x) * .5);
249
- padding-left: calc(var(--bs-gutter-x) * .5);
283
+ flex: 0 0 calc((4 / 12) * 100%);
284
+ max-width: calc((4 / 12) * 100%);
285
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
286
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
250
287
  margin-top: var(--bs-gutter-y); }
251
288
  ._8x7OP ._L42CP {
252
- flex: 0 0 calc((5/12)*100%);
253
- max-width: calc((5/12)*100%);
254
- padding-right: calc(var(--bs-gutter-x) * .5);
255
- padding-left: calc(var(--bs-gutter-x) * .5);
289
+ flex: 0 0 calc((5 / 12) * 100%);
290
+ max-width: calc((5 / 12) * 100%);
291
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
292
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
256
293
  margin-top: var(--bs-gutter-y); }
257
294
  ._8x7OP ._Oy31M {
258
- flex: 0 0 calc((8/12)*100%);
259
- max-width: calc((8/12)*100%);
260
- padding-right: calc(var(--bs-gutter-x) * .5);
261
- padding-left: calc(var(--bs-gutter-x) * .5);
295
+ flex: 0 0 calc((8 / 12) * 100%);
296
+ max-width: calc((8 / 12) * 100%);
297
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
298
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
262
299
  margin-top: var(--bs-gutter-y); }
263
300
  ._8x7OP ._3aUKo {
264
- flex: 0 0 calc((12/12)*100%);
265
- max-width: calc((12/12)*100%);
266
- padding-right: calc(var(--bs-gutter-x) * .5);
267
- padding-left: calc(var(--bs-gutter-x) * .5);
301
+ flex: 0 0 calc((12 / 12) * 100%);
302
+ max-width: calc((12 / 12) * 100%);
303
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
304
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
268
305
  margin-top: var(--bs-gutter-y); }
269
306
 
270
307
  ._39LRs {
@@ -307,7 +344,7 @@
307
344
  background-clip: padding-box;
308
345
  border: 1px solid #dee2e6;
309
346
  border-radius: 0.375rem;
310
- transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; }
347
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
311
348
 
312
349
  ._2PWdX {
313
350
  display: inline-block;
@@ -326,7 +363,7 @@
326
363
  border: 1px solid #0d6efd;
327
364
  border-radius: 0.375rem;
328
365
  background-color: transparent;
329
- transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; }
366
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
330
367
  ._2PWdX:hover {
331
368
  color: #fff !important;
332
369
  background-color: #0d6efd;
@@ -360,13 +397,86 @@
360
397
  background-size: 10px 7px;
361
398
  border: 1px solid #dee2e6;
362
399
  border-radius: 0.375rem;
363
- transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; }
400
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
364
401
 
365
402
  ._3NJzN {
366
403
  overflow: hidden;
367
404
  text-overflow: ellipsis;
368
405
  white-space: nowrap; }
369
406
 
407
+ ._3xnI5 {
408
+ position: fixed;
409
+ z-index: 100;
410
+ background: #fff;
411
+ top: 0; }
412
+ ._3xnI5 ._3YG70 {
413
+ display: flex;
414
+ align-items: center;
415
+ width: 64px;
416
+ min-width: 64px;
417
+ padding: 16px;
418
+ max-height: 80px; }
419
+ ._3xnI5._1CQPn {
420
+ display: flex;
421
+ justify-content: space-between;
422
+ padding: 0 27px 0 27px;
423
+ border-bottom: 1px solid var(--gray-300); }
424
+ ._3xnI5 ._3hx2T {
425
+ text-align: start; }
426
+ ._3xnI5 ._3hx2T ._3UyhW div span {
427
+ display: none; }
428
+ ._3xnI5 a._1TGKA {
429
+ border-bottom: 1px solid #7366ff;
430
+ border-radius: 0; }
431
+ ._3xnI5 a._1AqMh,
432
+ ._3xnI5 a._1TGKA {
433
+ color: #5458d5; }
434
+ ._3xnI5 ._3UyhW {
435
+ font-size: 14px;
436
+ font-weight: 700;
437
+ height: 100%;
438
+ padding: 7px 12px;
439
+ display: inline-table;
440
+ text-align: center;
441
+ line-height: 4.5;
442
+ color: #aeabac;
443
+ display: flex;
444
+ align-items: center; }
445
+ ._3xnI5 ._2RI6G {
446
+ width: unset;
447
+ height: unset;
448
+ padding-right: 16px;
449
+ line-height: 73px;
450
+ float: right; }
451
+ ._3xnI5 ._2RI6G > p {
452
+ line-height: 5;
453
+ color: #aeabac;
454
+ font-weight: 700; }
455
+ ._3xnI5 ._3aVHg {
456
+ pointer-events: none; }
457
+
458
+ @media (min-width: 992px) {
459
+ ._3xnI5 ._3YG70 {
460
+ width: 120px;
461
+ min-width: 120px;
462
+ padding: 16px 0; } }
463
+
464
+ @media (min-width: 1200px) {
465
+ ._3xnI5 ._3YG70 {
466
+ width: 162px;
467
+ min-width: 162px; }
468
+ ._3xnI5 ._2RI6G {
469
+ width: 73px;
470
+ height: 100%;
471
+ padding-right: 0; }
472
+ ._3xnI5 ._3hx2T {
473
+ display: flex;
474
+ flex-wrap: nowrap; }
475
+ ._3xnI5 ._3hx2T ._3UyhW div span {
476
+ display: inline-block; }
477
+ ._3xnI5 ._3UyhW {
478
+ padding: 7px 16px; } }
479
+
370
480
  ._2oGcJ {
371
481
  width: 48px;
372
482
  height: 48px;
@@ -621,6 +731,125 @@
621
731
  color: #FFF;
622
732
  background: #5458D5; }
623
733
 
734
+ ._11aYm {
735
+ width: 70vw;
736
+ height: calc(100vh - 78px);
737
+ position: fixed;
738
+ right: -100%;
739
+ bottom: 0;
740
+ z-index: 99;
741
+ transition: right 0.3s ease-in-out; }
742
+ ._11aYm._3Ydwm {
743
+ right: 0; }
744
+
745
+ ._3SQDf {
746
+ width: 100vw;
747
+ height: 100vh;
748
+ background-color: rgba(0, 0, 0, 0);
749
+ position: fixed;
750
+ right: 0;
751
+ bottom: 0;
752
+ transition: background-color 0.1s 0.2s ease-in-out;
753
+ z-index: -1; }
754
+ ._3SQDf._3Ydwm {
755
+ background-color: rgba(0, 0, 0, 0.3);
756
+ z-index: 98; }
757
+
758
+ ._2BwOx {
759
+ background: #F9FAFB;
760
+ border-bottom: 1px solid #E4E7EC;
761
+ padding: 1rem 1.5rem; }
762
+ ._2BwOx button {
763
+ background-color: #5458D5;
764
+ padding: 0.5rem 1rem; }
765
+ ._2BwOx button:hover {
766
+ background-color: #5457af; }
767
+ ._2BwOx button span {
768
+ font-size: 13px;
769
+ font-weight: 700; }
770
+
771
+ ._2Zo7R {
772
+ height: calc(100% - 70.5px);
773
+ padding: 1rem 1.5rem 2rem;
774
+ overflow-y: auto; }
775
+
776
+ ._1lzjD {
777
+ width: 100%;
778
+ top: calc(100% + 4px) !important;
779
+ left: unset !important;
780
+ right: 0 !important;
781
+ transform: none !important;
782
+ border-radius: 6px;
783
+ box-shadow: 0px 8px 15px #989898;
784
+ border: none;
785
+ padding: 0 8px; }
786
+ ._1lzjD:after {
787
+ display: none; }
788
+ ._1lzjD ._1y7K9 {
789
+ background: transparent; }
790
+
791
+ ._1Y-55 {
792
+ font-size: 14px;
793
+ line-height: 1; }
794
+ ._1Y-55:active {
795
+ background-color: transparent !important; }
796
+
797
+ ._1fBXY {
798
+ width: 210px;
799
+ top: 40px !important;
800
+ left: -80px !important;
801
+ transform: none !important;
802
+ border-radius: 6px;
803
+ box-shadow: 0px 8px 15px #989898;
804
+ border: none;
805
+ padding: 0 8px; }
806
+ ._1fBXY:after {
807
+ display: none; }
808
+ ._1fBXY ._1y7K9 {
809
+ background: transparent; }
810
+
811
+ ._3Szun {
812
+ color: #242424;
813
+ display: flex;
814
+ padding: 8px;
815
+ border-radius: 6px; }
816
+ ._3Szun:hover {
817
+ background-color: #f1faff;
818
+ color: #009ef7; }
819
+
820
+ ._2HhLb {
821
+ background-color: #f1faff;
822
+ color: #009ef7; }
823
+
824
+ ._3WYHC {
825
+ font-weight: 600;
826
+ border-top: 1px solid #27347d29;
827
+ padding-top: 10px; }
828
+ ._3WYHC._2-9ix {
829
+ color: #8b0000; }
830
+ ._3WYHC ._1r4pn {
831
+ margin-right: 12px; }
832
+
833
+ ._2ZozT {
834
+ width: 40px;
835
+ height: 40px;
836
+ border-radius: 50%;
837
+ margin-right: 12px;
838
+ display: flex;
839
+ justify-content: center;
840
+ align-items: center;
841
+ font-size: 20px;
842
+ font-weight: 600;
843
+ line-height: 1;
844
+ background-color: #5458D5;
845
+ color: #FFF; }
846
+ ._2ZozT img {
847
+ width: 100%;
848
+ height: 100%;
849
+ border-radius: 50%;
850
+ -o-object-fit: cover;
851
+ object-fit: cover; }
852
+
624
853
  ._1dveO ._mxRxf:nth-child(1) {
625
854
  font-family: "Pretendard";
626
855
  font-size: 20px;
package/dist/index.d.ts CHANGED
@@ -61,4 +61,5 @@ import InputText from "./components/Inputs/InputText";
61
61
  import * as Textbook from "./containers/Textbooks/views";
62
62
  import SubjectSelector from "./components/Selectors/SubjectSelector";
63
63
  import * as timeUtils from "./utils/times";
64
- export { diffFromNow, formatTime, utcToLocalTime, setLoading, setReadyRegisterPusher, BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, Login, store, setAlert, setUser, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, CustomPagination, useGoogleSignOut, PUSHER_CONFIG, ExamEvent, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, setLanguage, i18n, TheLanguageDropdown, TheAcademyDropdown, useTranslation, I18nextProvider, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, minutesToTimeSpan, toISOString, canAccessRoute, CustomSelect, CustomAsyncSelect, CustomSelectOption, getAccessToken, ChatContainer, IChatContainerProps, IChatItemProps, IChatHeaderProps, IInputChatProps, ChatItemType, useChatContainer, ConversationResponse, usePusherConversation, ExamResultV2, ToastContainer, toast, Role, useLanguage, useSwitchAcademy, LANGUAGES, CustomCreatable, moment, ExamDetailView, ExamDetailViewProps, Exam, Question, ArticleGroup, getAcademyDomain, useSubjectSelect, useLogin, useAutoAcademyDomain, LoginAccessTokenRequest, LoginRequest, setReFetchUserAcademies, ChatTypes, AcademyHeaders, Types, Enums, CoreHooks, ArticleGroupView, AnswerCountSelector, QuestionCountSelector, ScoreSelector, ArticleCategorySelector, SubjectSelector, useCategorySelect, InputText, Textbook, TextbookDetail, TextbookList, timeUtils };
64
+ import Header from "./layouts/Header";
65
+ export { diffFromNow, formatTime, utcToLocalTime, setLoading, setReadyRegisterPusher, BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, Login, store, setAlert, setUser, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, CustomPagination, useGoogleSignOut, PUSHER_CONFIG, ExamEvent, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, setLanguage, i18n, TheLanguageDropdown, TheAcademyDropdown, useTranslation, I18nextProvider, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, minutesToTimeSpan, toISOString, canAccessRoute, CustomSelect, CustomAsyncSelect, CustomSelectOption, getAccessToken, ChatContainer, IChatContainerProps, IChatItemProps, IChatHeaderProps, IInputChatProps, ChatItemType, useChatContainer, ConversationResponse, usePusherConversation, ExamResultV2, ToastContainer, toast, Role, useLanguage, useSwitchAcademy, LANGUAGES, CustomCreatable, moment, ExamDetailView, ExamDetailViewProps, Exam, Question, ArticleGroup, getAcademyDomain, useSubjectSelect, useLogin, useAutoAcademyDomain, LoginAccessTokenRequest, LoginRequest, setReFetchUserAcademies, ChatTypes, AcademyHeaders, Types, Enums, CoreHooks, ArticleGroupView, AnswerCountSelector, QuestionCountSelector, ScoreSelector, ArticleCategorySelector, SubjectSelector, useCategorySelect, InputText, Textbook, TextbookDetail, TextbookList, timeUtils, Header };