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.
- package/dist/containers/Textbooks/apiClient/examService.d.ts +6 -0
- package/dist/containers/Textbooks/apiClient/examSessionService.d.ts +10 -0
- package/dist/containers/Textbooks/components/dialog/ChapterNameDialog.d.ts +10 -0
- package/dist/containers/Textbooks/components/dialog/CreateExamDrawer.d.ts +11 -0
- package/dist/containers/Textbooks/configs/constants.d.ts +4 -0
- package/dist/containers/Textbooks/configs/interfaces.d.ts +2 -0
- package/dist/containers/Textbooks/configs/types.d.ts +36 -0
- package/dist/containers/Textbooks/hooks/useExam.d.ts +16 -0
- package/dist/containers/Textbooks/hooks/useTextbookDetail.d.ts +9 -0
- package/dist/index.css +280 -51
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1868 -1195
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1871 -1199
- package/dist/index.modern.js.map +1 -1
- package/dist/layouts/Header.d.ts +13 -0
- package/dist/layouts/TheAcademyDropdown.d.ts +1 -0
- package/dist/utils/types/tab.d.ts +8 -0
- package/package.json +1 -1
@@ -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 #
|
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 #
|
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 #
|
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: #
|
145
|
-
color: #
|
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
|
-
|
156
|
-
border:
|
157
|
-
|
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: #
|
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(
|
198
|
-
margin-left: calc(
|
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(
|
231
|
-
margin-left: calc(
|
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
|
-
|
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 };
|