mario-education 2.2.8 → 2.3.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.
package/dist/index.js CHANGED
@@ -153,9 +153,6 @@ var StudentSelector = function StudentSelector(_ref) {
153
153
  id: student.id
154
154
  };
155
155
  });
156
- console.log("teacher assignment");
157
- console.log(options);
158
- console.log(value);
159
156
  return React__default.createElement(marioCore.CustomSelector, {
160
157
  options: options,
161
158
  inputValue: searchString,
@@ -5178,7 +5175,6 @@ var LearningSupportCategoryList = function LearningSupportCategoryList() {
5178
5175
 
5179
5176
  var style = {
5180
5177
  padding: "4px 8px",
5181
- marginRight: 16,
5182
5178
  marginBottom: 0,
5183
5179
  borderRadius: "2px",
5184
5180
  color: "#fff",
@@ -5212,8 +5208,12 @@ var UploadCSVButton = function UploadCSVButton(_ref) {
5212
5208
  };
5213
5209
 
5214
5210
  var CSV_FILE_URL = marioCore.BASE_URL + "/api/ImportCsv/csv";
5215
- var importCSV = function importCSV(formData, subFolder) {
5216
- return marioCore.apiUpload.post(CSV_FILE_URL + "/" + subFolder, formData);
5211
+ var CSV_FILE_TEACHER = marioCore.BASE_URL + "/api/Teacher";
5212
+ var importStudentCSV = function importStudentCSV(formData) {
5213
+ return marioCore.apiUpload.post(CSV_FILE_TEACHER + "/adminImportStudent", formData);
5214
+ };
5215
+ var importClassReflectionCSV = function importClassReflectionCSV(formData) {
5216
+ return marioCore.apiUpload.post(CSV_FILE_URL + "/importClassReflection", formData);
5217
5217
  };
5218
5218
 
5219
5219
  var CSVType;
@@ -5228,28 +5228,18 @@ var CSVType;
5228
5228
  })(CSVType || (CSVType = {}));
5229
5229
 
5230
5230
  var buttons = [{
5231
- text: "Import subjects",
5232
- backgroundColor: "#1dd1a1",
5233
- type: CSVType.Subjects
5234
- }, {
5235
- text: "Import grades",
5236
- backgroundColor: "#54a0ff",
5237
- type: CSVType.Grades
5238
- }, {
5239
- text: "Import attendances",
5240
- backgroundColor: "#feca57",
5241
- type: CSVType.Attendances
5242
- }, {
5243
- text: "Import class reflections",
5244
- backgroundColor: "#e74c3c",
5245
- type: CSVType.ClassReflection
5246
- }, {
5247
- text: "Import others",
5248
- backgroundColor: "#8395a7",
5249
- type: CSVType.Others
5231
+ text: "Import students",
5232
+ backgroundColor: "#0abde3",
5233
+ type: CSVType.Students
5250
5234
  }];
5251
5235
  var title = "CSV Import";
5252
5236
  var id = "csvupload";
5237
+ var initClassReflect = {
5238
+ teacherName: '',
5239
+ teacherEmail: '',
5240
+ studentIds: [],
5241
+ file: ''
5242
+ };
5253
5243
 
5254
5244
  var useCSVImport = function useCSVImport() {
5255
5245
  var dispatch = reactRedux.useDispatch();
@@ -5261,6 +5251,18 @@ var useCSVImport = function useCSVImport() {
5261
5251
  type = _useState[0],
5262
5252
  setType = _useState[1];
5263
5253
 
5254
+ var _useState2 = React.useState(),
5255
+ dataFile = _useState2[0],
5256
+ setDataFile = _useState2[1];
5257
+
5258
+ var _useState3 = React.useState([]),
5259
+ arrStudent = _useState3[0],
5260
+ setArrStudent = _useState3[1];
5261
+
5262
+ var _useState4 = React.useState(initClassReflect),
5263
+ initImportReflection = _useState4[0],
5264
+ setInitImportReflection = _useState4[1];
5265
+
5264
5266
  React.useEffect(function () {
5265
5267
  document.title = title;
5266
5268
  }, []);
@@ -5268,7 +5270,7 @@ var useCSVImport = function useCSVImport() {
5268
5270
  try {
5269
5271
  var _temp3 = function _temp3() {
5270
5272
  dispatch(marioCore.setLoading(false));
5271
- var input = document.getElementById(id);
5273
+ var input = document.getElementById('import-student');
5272
5274
  input && (input.value = "");
5273
5275
  };
5274
5276
 
@@ -5278,7 +5280,7 @@ var useCSVImport = function useCSVImport() {
5278
5280
  var _temp4 = _catch(function () {
5279
5281
  var formData = new FormData();
5280
5282
  formData.append("file", file, file.name);
5281
- return Promise.resolve(importCSV(formData, type.toString())).then(function () {
5283
+ return Promise.resolve(importStudentCSV(formData)).then(function () {
5282
5284
  dispatch(marioCore.setAlert({
5283
5285
  type: "success",
5284
5286
  message: "Import CSV successfully"
@@ -5298,21 +5300,87 @@ var useCSVImport = function useCSVImport() {
5298
5300
  return Promise.reject(e);
5299
5301
  }
5300
5302
  }, [type]);
5303
+
5304
+ var onConfirm = function onConfirm(values) {
5305
+ try {
5306
+ var _temp7 = function _temp7() {
5307
+ dispatch(marioCore.setLoading(false));
5308
+ var input = document.getElementById(id);
5309
+ input && (input.value = "");
5310
+ };
5311
+
5312
+ if (!dataFile || !dataFile) return Promise.resolve();
5313
+ dispatch(marioCore.setLoading(true));
5314
+
5315
+ var _temp8 = _catch(function () {
5316
+ var formData = new FormData();
5317
+ formData.append("file", dataFile, dataFile.name);
5318
+ formData.append("teacherName", values.teacherName);
5319
+ formData.append("teacherEmail", values.teacherEmail);
5320
+ values.studentIds.forEach(function (item) {
5321
+ formData.append("studentIds", item);
5322
+ });
5323
+ return Promise.resolve(importClassReflectionCSV(formData)).then(function () {
5324
+ dispatch(marioCore.setAlert({
5325
+ type: "success",
5326
+ message: "Import CSV successfully"
5327
+ }));
5328
+ setInitImportReflection(initClassReflect);
5329
+ });
5330
+ }, function (err) {
5331
+ var _err$response2, _err$response2$data;
5332
+
5333
+ dispatch(marioCore.setAlert({
5334
+ type: "danger",
5335
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
5336
+ }));
5337
+ });
5338
+
5339
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
5340
+ } catch (e) {
5341
+ return Promise.reject(e);
5342
+ }
5343
+ };
5344
+
5301
5345
  return {
5302
5346
  isLoading: isLoading,
5303
5347
  buttons: buttons,
5304
5348
  id: id,
5305
5349
  setType: setType,
5306
- upload: upload
5350
+ upload: upload,
5351
+ initImportReflection: initImportReflection,
5352
+ setInitImportReflection: setInitImportReflection,
5353
+ onConfirm: onConfirm,
5354
+ CSVType: CSVType,
5355
+ dataFile: dataFile,
5356
+ setDataFile: setDataFile,
5357
+ setArrStudent: setArrStudent,
5358
+ arrStudent: arrStudent
5307
5359
  };
5308
5360
  };
5309
5361
 
5362
+ var schema$4 = yup.object({
5363
+ teacherName: yup.string().required(),
5364
+ teacherEmail: yup.string().email('Invalid email').required(),
5365
+ studentIds: yup.array().required().test("test students", "Please choose student", function () {
5366
+ return !!this.parent.studentIds && !!this.parent.studentIds.length;
5367
+ }),
5368
+ file: yup.string().required()
5369
+ });
5370
+
5310
5371
  var CSVImport = function CSVImport() {
5311
5372
  var _useCSVImport = useCSVImport(),
5373
+ initImportReflection = _useCSVImport.initImportReflection,
5374
+ onConfirm = _useCSVImport.onConfirm,
5312
5375
  isLoading = _useCSVImport.isLoading,
5313
- buttons = _useCSVImport.buttons,
5314
- id = _useCSVImport.id,
5315
5376
  setType = _useCSVImport.setType,
5377
+ id = _useCSVImport.id,
5378
+ CSVType = _useCSVImport.CSVType,
5379
+ dataFile = _useCSVImport.dataFile,
5380
+ setDataFile = _useCSVImport.setDataFile,
5381
+ setArrStudent = _useCSVImport.setArrStudent,
5382
+ arrStudent = _useCSVImport.arrStudent,
5383
+ buttons = _useCSVImport.buttons,
5316
5384
  upload = _useCSVImport.upload;
5317
5385
 
5318
5386
  return React__default.createElement("div", {
@@ -5320,28 +5388,146 @@ var CSVImport = function CSVImport() {
5320
5388
  }, React__default.createElement(reactstrap.Input, {
5321
5389
  className: "d-none",
5322
5390
  type: "file",
5323
- id: id,
5391
+ id: "import-student",
5324
5392
  onChange: function onChange(e) {
5325
5393
  return upload(e.target.files[0]);
5326
5394
  },
5327
5395
  accept: "text/csv"
5328
5396
  }), React__default.createElement("div", {
5329
- className: "d-flex align-items-center"
5330
- }, buttons.map(function (button) {
5331
- return React__default.createElement(UploadCSVButton, {
5332
- key: button.text,
5397
+ className: "class-reflection"
5398
+ }, React__default.createElement(formik.Formik, {
5399
+ initialValues: initImportReflection,
5400
+ enableReinitialize: true,
5401
+ validationSchema: schema$4,
5402
+ onSubmit: function onSubmit(values, actions) {
5403
+ onConfirm(values);
5404
+ setDataFile('');
5405
+ setArrStudent([]);
5406
+ actions.resetForm();
5407
+ }
5408
+ }, function (formProps) {
5409
+ var values = formProps.values,
5410
+ touched = formProps.touched,
5411
+ errors = formProps.errors,
5412
+ handleSubmit = formProps.handleSubmit,
5413
+ handleChange = formProps.handleChange;
5414
+ return React__default.createElement(reactstrap.Row, {
5415
+ className: "mb-2"
5416
+ }, React__default.createElement(reactstrap.Input, {
5417
+ className: "d-none",
5418
+ type: "file",
5419
+ id: id,
5420
+ onChange: function onChange(e) {
5421
+ setDataFile(e.target.files[0]);
5422
+ formProps.setFieldValue('file', 'imported');
5423
+ var input = document.getElementById(id);
5424
+ input && (input.value = "");
5425
+ },
5426
+ accept: "text/csv"
5427
+ }), React__default.createElement(reactstrap.Col, {
5428
+ md: 6,
5429
+ className: "mb-2"
5430
+ }, React__default.createElement(reactstrap.Row, null, React__default.createElement(reactstrap.Col, {
5431
+ md: 12,
5432
+ className: "mb-2"
5433
+ }, React__default.createElement(marioCore.RequiredLabel, {
5434
+ text: "Class Teacher Name"
5435
+ }), React__default.createElement(reactstrap.Input, {
5436
+ name: "teacherName",
5437
+ value: values.teacherName,
5438
+ type: "text",
5439
+ onChange: function onChange(e) {
5440
+ handleChange(e);
5441
+ }
5442
+ }), touched.teacherName && errors.teacherName && React__default.createElement(marioCore.ErrorHandler, {
5443
+ text: errors.teacherName
5444
+ })), React__default.createElement(reactstrap.Col, {
5445
+ md: 12,
5446
+ className: "mb-2"
5447
+ }, React__default.createElement(marioCore.RequiredLabel, {
5448
+ text: "Class Teacher Email"
5449
+ }), React__default.createElement(reactstrap.Input, {
5450
+ name: "teacherEmail",
5451
+ value: values.teacherEmail,
5452
+ type: "text",
5453
+ onChange: function onChange(e) {
5454
+ handleChange(e);
5455
+ }
5456
+ }), touched.teacherEmail && errors.teacherEmail && React__default.createElement(marioCore.ErrorHandler, {
5457
+ text: errors.teacherEmail
5458
+ })), React__default.createElement(reactstrap.Col, {
5459
+ md: 12,
5460
+ className: "mb-2"
5461
+ }, React__default.createElement(reactstrap.Label, null, "Students"), React__default.createElement(StudentSelector, {
5462
+ onChange: function onChange(e) {
5463
+ setArrStudent(e);
5464
+ formProps.setFieldValue("studentIds", e.map(function (i) {
5465
+ return i.value;
5466
+ }) || []);
5467
+ },
5468
+ value: arrStudent
5469
+ })), React__default.createElement(reactstrap.Col, {
5470
+ md: 12,
5471
+ className: "mb-2"
5472
+ }, touched.studentIds && errors.studentIds && React__default.createElement(marioCore.ErrorHandler, {
5473
+ text: errors.studentIds
5474
+ })), React__default.createElement(reactstrap.Col, {
5475
+ md: 12,
5476
+ className: "mb-2"
5477
+ }, React__default.createElement(marioCore.RequiredLabel, {
5478
+ text: "Upload File Class Reflection"
5479
+ }), React__default.createElement(UploadCSVButton, {
5480
+ key: "Import class reflections",
5333
5481
  htmlFor: id,
5334
- text: button.text,
5482
+ text: "Import class reflections",
5335
5483
  isDisabled: isLoading,
5336
- backgroundColor: button.backgroundColor,
5484
+ backgroundColor: "#e74c3c",
5337
5485
  onClick: function onClick() {
5338
- return setType(button.type);
5486
+ setType(CSVType.ClassReflection);
5339
5487
  }
5340
- });
5488
+ }), !!dataFile && React__default.createElement("p", {
5489
+ style: {
5490
+ color: '#007bff',
5491
+ fontStyle: 'italic',
5492
+ marginTop: '5px'
5493
+ }
5494
+ }, dataFile.name)), !dataFile && React__default.createElement(reactstrap.Col, {
5495
+ md: 12,
5496
+ className: "mb-2"
5497
+ }, touched.file && errors.file && React__default.createElement(marioCore.ErrorHandler, {
5498
+ text: errors.file
5499
+ })), React__default.createElement(reactstrap.Col, {
5500
+ md: 12
5501
+ }, React__default.createElement(reactstrap.Button, {
5502
+ color: "primary",
5503
+ className: "float-right",
5504
+ onClick: function onClick() {
5505
+ return handleSubmit();
5506
+ }
5507
+ }, "Import"), ' '))), React__default.createElement(reactstrap.Col, {
5508
+ md: 6,
5509
+ className: "mb-2"
5510
+ }, React__default.createElement(reactstrap.Row, null, React__default.createElement(reactstrap.Col, {
5511
+ md: 12,
5512
+ className: "mb-2"
5513
+ }, React__default.createElement(marioCore.RequiredLabel, {
5514
+ text: "Import student"
5515
+ }), buttons.map(function (button) {
5516
+ return React__default.createElement(UploadCSVButton, {
5517
+ key: button.text,
5518
+ htmlFor: 'import-student',
5519
+ text: button.text,
5520
+ isDisabled: isLoading,
5521
+ backgroundColor: button.backgroundColor,
5522
+ onClick: function onClick() {
5523
+ return setType(button.type);
5524
+ }
5525
+ });
5526
+ })))));
5341
5527
  })));
5342
5528
  };
5343
5529
 
5344
- var schema$4 = yup.object({
5530
+ var schema$5 = yup.object({
5345
5531
  name: yup.string().required("Name is required"),
5346
5532
  startTime: yup.string().required("Start time is required"),
5347
5533
  endTime: yup.string().required("End time is required")
@@ -5360,7 +5546,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5360
5546
  return React__default.createElement(formik.Formik, {
5361
5547
  initialValues: semesterDetail,
5362
5548
  enableReinitialize: true,
5363
- validationSchema: schema$4,
5549
+ validationSchema: schema$5,
5364
5550
  onSubmit: function onSubmit(values, actions) {
5365
5551
  onConfirm(values);
5366
5552
  actions.resetForm();
@@ -5413,7 +5599,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5413
5599
  })), React__default.createElement(reactstrap.Col, {
5414
5600
  md: 6
5415
5601
  }, React__default.createElement(DatePicker, {
5416
- value: marioCore.utcToLocalTime(values.startTime, "MMM dd, yyyy"),
5602
+ value: !!values.startTime ? marioCore.utcToLocalTime(values.startTime, "Do MMMM YYYY") : "",
5417
5603
  todayButton: "Today",
5418
5604
  peekNextMonth: true,
5419
5605
  showMonthDropdown: true,
@@ -5444,7 +5630,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5444
5630
  })), React__default.createElement(reactstrap.Col, {
5445
5631
  md: 6
5446
5632
  }, React__default.createElement(DatePicker, {
5447
- value: marioCore.utcToLocalTime(values.endTime, "MMM dd, yyyy"),
5633
+ value: !!values.endTime ? marioCore.utcToLocalTime(values.endTime, "Do MMMM YYYY") : "",
5448
5634
  todayButton: "Today",
5449
5635
  peekNextMonth: true,
5450
5636
  showMonthDropdown: true,
@@ -5471,7 +5657,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5471
5657
 
5472
5658
  var SemesterDetailModal$1 = React.forwardRef(SemesterDetailModal);
5473
5659
 
5474
- var schema$5 = yup.object({
5660
+ var schema$6 = yup.object({
5475
5661
  value: yup.number().required("Breaking month is required")
5476
5662
  });
5477
5663
  var options = [{
@@ -5524,7 +5710,7 @@ var BreakingMonthModal = function BreakingMonthModal(props, ref) {
5524
5710
  return React__default.createElement(formik.Formik, {
5525
5711
  initialValues: breakingMonthDetail,
5526
5712
  enableReinitialize: true,
5527
- validationSchema: schema$5,
5713
+ validationSchema: schema$6,
5528
5714
  onSubmit: function onSubmit(values, actions) {
5529
5715
  onConfirm(values);
5530
5716
  actions.resetForm();
@@ -6060,9 +6246,9 @@ var SemesterList = function SemesterList() {
6060
6246
  }
6061
6247
  })), React__default.createElement("td", {
6062
6248
  className: "align-middle"
6063
- }, marioCore.utcToLocalTime(record.startTime, "MMM dd, yyyy")), React__default.createElement("td", {
6249
+ }, marioCore.utcToLocalTime(record.startTime, "Do MMMM YYYY")), React__default.createElement("td", {
6064
6250
  className: "align-middle"
6065
- }, marioCore.utcToLocalTime(record.endTime, "MMM dd, yyyy")), React__default.createElement("td", {
6251
+ }, marioCore.utcToLocalTime(record.endTime, "Do MMMM YYYY")), React__default.createElement("td", {
6066
6252
  className: "text-center align-middle"
6067
6253
  }, React__default.createElement(marioCore.DeleteButtonIcon, {
6068
6254
  onClick: function onClick() {
@@ -6102,7 +6288,7 @@ var SemesterList = function SemesterList() {
6102
6288
  }, "Change breaking month"))))));
6103
6289
  };
6104
6290
 
6105
- var schema$6 = yup.object({
6291
+ var schema$7 = yup.object({
6106
6292
  label: yup.string().required("Label is required"),
6107
6293
  value: yup.number().required("Value is required")
6108
6294
  });
@@ -6120,7 +6306,7 @@ var BandScoreDetailModal = function BandScoreDetailModal(props, ref) {
6120
6306
  return React__default.createElement(formik.Formik, {
6121
6307
  initialValues: bandScoreDetail,
6122
6308
  enableReinitialize: true,
6123
- validationSchema: schema$6,
6309
+ validationSchema: schema$7,
6124
6310
  onSubmit: function onSubmit(values, actions) {
6125
6311
  onConfirm(values);
6126
6312
  actions.resetForm();
@@ -6789,7 +6975,7 @@ var CurrentLicense = function CurrentLicense() {
6789
6975
  }))));
6790
6976
  };
6791
6977
 
6792
- var schema$7 = yup.object({
6978
+ var schema$8 = yup.object({
6793
6979
  name: yup.string().required("Name is required"),
6794
6980
  startTime: yup.string().required("Start time is required"),
6795
6981
  endTime: yup.string().required("End time is required")
@@ -6808,7 +6994,7 @@ var SchoolBlankDayDetailModal = function SchoolBlankDayDetailModal(props, ref) {
6808
6994
  return React__default.createElement(formik.Formik, {
6809
6995
  initialValues: schoolBlankDayDetail,
6810
6996
  enableReinitialize: true,
6811
- validationSchema: schema$7,
6997
+ validationSchema: schema$8,
6812
6998
  onSubmit: function onSubmit(values, actions) {
6813
6999
  onConfirm(values);
6814
7000
  actions.resetForm();
@@ -7244,9 +7430,9 @@ var SchoolBlankDayList = function SchoolBlankDayList() {
7244
7430
  }
7245
7431
  })), React__default.createElement("td", {
7246
7432
  className: "align-middle"
7247
- }, marioCore.utcToLocalTime(record.startTime, marioCore.DATE_FORMAT)), React__default.createElement("td", {
7433
+ }, marioCore.utcToLocalTime(record.startTime, "Do MMMM YYYY")), React__default.createElement("td", {
7248
7434
  className: "align-middle"
7249
- }, marioCore.utcToLocalTime(record.endTime, marioCore.DATE_FORMAT)), React__default.createElement("td", {
7435
+ }, marioCore.utcToLocalTime(record.endTime, "Do MMMM YYYY")), React__default.createElement("td", {
7250
7436
  className: "text-center align-middle"
7251
7437
  }, React__default.createElement(marioCore.DeleteButtonIcon, {
7252
7438
  onClick: function onClick() {
@@ -8338,7 +8524,7 @@ var QuestionSplitPaneSelector = function QuestionSplitPaneSelector(props) {
8338
8524
  }, " ", "v", " ")) : "");
8339
8525
  };
8340
8526
 
8341
- var schema$8 = yup.object({
8527
+ var schema$9 = yup.object({
8342
8528
  name: yup.string().required("Name is required")
8343
8529
  });
8344
8530
 
@@ -8364,7 +8550,7 @@ var ReflectionDetailModal = function ReflectionDetailModal(props, ref) {
8364
8550
  return React__default.createElement(formik.Formik, {
8365
8551
  initialValues: reflectionformDetail,
8366
8552
  enableReinitialize: true,
8367
- validationSchema: schema$8,
8553
+ validationSchema: schema$9,
8368
8554
  onSubmit: function onSubmit(values, actions) {
8369
8555
  values.questionIds = arrId;
8370
8556
  onConfirm(values);
@@ -9745,7 +9931,7 @@ var AdditionalComponent = function AdditionalComponent(_ref) {
9745
9931
  return null;
9746
9932
  };
9747
9933
 
9748
- var schema$9 = yup.object({
9934
+ var schema$a = yup.object({
9749
9935
  text: yup.string().required("Question text is required"),
9750
9936
  type: yup.string().required("Question type is required"),
9751
9937
  categoryId: yup.number().test("test category id", "Category is required", function (value) {
@@ -9998,7 +10184,7 @@ var QuestionDetail = function QuestionDetail() {
9998
10184
  return React__default.createElement(formik.Formik, {
9999
10185
  initialValues: questionDetail,
10000
10186
  enableReinitialize: true,
10001
- validationSchema: schema$9,
10187
+ validationSchema: schema$a,
10002
10188
  onSubmit: function onSubmit(values) {
10003
10189
  if (values.type == marioCore.QUESTION_TYPES.EMOTIONAL && !!values.answers) {
10004
10190
  for (var index in values.answers) {
@@ -10264,7 +10450,7 @@ var QuestionSplitPaneSelector$1 = function QuestionSplitPaneSelector(props) {
10264
10450
  }, " ", "v", " ")) : "");
10265
10451
  };
10266
10452
 
10267
- var schema$a = yup.object({
10453
+ var schema$b = yup.object({
10268
10454
  name: yup.string().required("Name is required")
10269
10455
  });
10270
10456
 
@@ -10290,7 +10476,7 @@ var AssessmentDetailModal = function AssessmentDetailModal(props, ref) {
10290
10476
  return React__default.createElement(formik.Formik, {
10291
10477
  initialValues: assessmentDetail,
10292
10478
  enableReinitialize: true,
10293
- validationSchema: schema$a,
10479
+ validationSchema: schema$b,
10294
10480
  onSubmit: function onSubmit(values, actions) {
10295
10481
  values.questionIds = arrId;
10296
10482
  onConfirm(values);
@@ -11232,7 +11418,7 @@ var FeedbackList = function FeedbackList() {
11232
11418
  }))));
11233
11419
  };
11234
11420
 
11235
- var schema$b = yup.object({
11421
+ var schema$c = yup.object({
11236
11422
  name: yup.string().required("Name is required")
11237
11423
  });
11238
11424
 
@@ -11252,7 +11438,7 @@ var TutorialScreenDetailModal = function TutorialScreenDetailModal(props, ref) {
11252
11438
  typeRole: typeRole
11253
11439
  }),
11254
11440
  enableReinitialize: true,
11255
- validationSchema: schema$b,
11441
+ validationSchema: schema$c,
11256
11442
  onSubmit: function onSubmit(values, actions) {
11257
11443
  onConfirm(values);
11258
11444
  actions.resetForm();
@@ -11732,110 +11918,7 @@ var TutorialScreenContainer = function TutorialScreenContainer() {
11732
11918
  });
11733
11919
  };
11734
11920
 
11735
- var QuestionBankList$1 = function QuestionBankList(_ref) {
11736
- var isDefaultQuestion = _ref.isDefaultQuestion,
11737
- isDefaultQuestionGeneral = _ref.isDefaultQuestionGeneral;
11738
-
11739
- var _useQuestionList = useQuestionList(isDefaultQuestion, isDefaultQuestionGeneral),
11740
- totalItems = _useQuestionList.totalItems,
11741
- gridOptions = _useQuestionList.gridOptions,
11742
- setRef = _useQuestionList.setRef,
11743
- goToDetail = _useQuestionList.goToDetail,
11744
- filters = _useQuestionList.filters,
11745
- changeFilters = _useQuestionList.changeFilters,
11746
- updateOrderQuestions = _useQuestionList.updateOrderQuestions;
11747
-
11748
- var onRowDragEnd = function onRowDragEnd(e) {
11749
- var dataAfterDrag = e.node.parent.childrenAfterFilter.map(function (item, index) {
11750
- return {
11751
- id: item.data.id,
11752
- orderDrag: ++index
11753
- };
11754
- });
11755
- updateOrderQuestions(dataAfterDrag, isDefaultQuestionGeneral);
11756
- };
11757
-
11758
- return React__default.createElement("div", {
11759
- className: "animated fadeIn"
11760
- }, React__default.createElement(reactstrap.Row, {
11761
- className: "my-2"
11762
- }, React__default.createElement(reactstrap.Col, {
11763
- md: 8
11764
- }, React__default.createElement(marioCore.SearchBoxContainer, {
11765
- text: "Create question",
11766
- onClick: function onClick() {
11767
- return goToDetail();
11768
- },
11769
- initValue: filters.searchString,
11770
- onSearch: function onSearch(searchString) {
11771
- return changeFilters({
11772
- searchString: searchString
11773
- });
11774
- },
11775
- placeholder: "Type something to Search question"
11776
- })), isDefaultQuestion && React__default.createElement(reactstrap.Col, {
11777
- md: 2
11778
- }, React__default.createElement(DefaultQuestionStudentTeacherFilter, {
11779
- isDefaultQuestionTeacher: filters.isDefaultQuestionTeacher,
11780
- onChange: function onChange(e) {
11781
- return changeFilters({
11782
- isDefaultQuestionTeacher: e ? e.value : null
11783
- });
11784
- }
11785
- })), isDefaultQuestionGeneral && React__default.createElement(reactstrap.Col, {
11786
- md: 2
11787
- }, React__default.createElement(DefaultQuestionStudentTeacherFilter, {
11788
- isDefaultQuestionTeacher: filters.isDefaultQuestionGeneralClassTeacher,
11789
- onChange: function onChange(e) {
11790
- return changeFilters({
11791
- isDefaultQuestionGeneralClassTeacher: e ? e.value : null
11792
- });
11793
- },
11794
- isDefaultGeneralClass: true
11795
- })), React__default.createElement(reactstrap.Col, {
11796
- md: isDefaultQuestion || isDefaultQuestionGeneral ? 2 : 4,
11797
- className: "d-flex align-items-center justify-content-end"
11798
- }, "Total of questions: ", totalItems)), React__default.createElement(reactstrap.Row, {
11799
- className: "mb-2"
11800
- }, React__default.createElement(reactstrap.Col, {
11801
- md: 12,
11802
- className: "mb-2"
11803
- }, React__default.createElement("div", {
11804
- className: "ag-theme-balham w-100"
11805
- }, React__default.createElement(react.AgGridReact, {
11806
- domLayout: "autoHeight",
11807
- gridOptions: gridOptions,
11808
- masterDetail: true,
11809
- onGridReady: function onGridReady(params) {
11810
- setRef(params.api);
11811
- },
11812
- rowDragManaged: true,
11813
- animateRows: true,
11814
- modules: [masterDetail.MasterDetailModule, clientSideRowModel.ClientSideRowModelModule],
11815
- onRowDragEnd: onRowDragEnd
11816
- }))), React__default.createElement(reactstrap.Col, {
11817
- md: 12
11818
- }, React__default.createElement(marioCore.CustomPagination, {
11819
- filters: filters,
11820
- totalRecordCount: totalItems,
11821
- changePageSize: function changePageSize(pageSize) {
11822
- return changeFilters({
11823
- pageSize: pageSize
11824
- });
11825
- },
11826
- changePage: function changePage(currentPage) {
11827
- return changeFilters({
11828
- currentPage: currentPage
11829
- });
11830
- }
11831
- }))));
11832
- };
11833
-
11834
- QuestionBankList$1.defaultProps = {
11835
- isDefaultQuestion: false
11836
- };
11837
-
11838
- var schema$c = yup.object({
11921
+ var schema$d = yup.object({
11839
11922
  name: yup.string().required("Name is required")
11840
11923
  });
11841
11924
 
@@ -11852,7 +11935,7 @@ var QuestionCateModal = function QuestionCateModal(props, ref) {
11852
11935
  return React__default.createElement(formik.Formik, {
11853
11936
  initialValues: questionCateDetail,
11854
11937
  enableReinitialize: true,
11855
- validationSchema: schema$c,
11938
+ validationSchema: schema$d,
11856
11939
  onSubmit: function onSubmit(values, actions) {
11857
11940
  onConfirm(values);
11858
11941
  actions.resetForm();
@@ -12263,25 +12346,7 @@ var QuestionCateList = function QuestionCateList() {
12263
12346
  var tabs$3 = [{
12264
12347
  path: "/admin/question/question-list",
12265
12348
  title: "Question list",
12266
- component: QuestionBankList$1
12267
- }, {
12268
- path: "/admin/question/default-question-list",
12269
- title: "Default question list",
12270
- component: function component() {
12271
- return React__default.createElement(QuestionBankList$1, {
12272
- isDefaultQuestion: true,
12273
- isDefaultQuestionGeneral: false
12274
- });
12275
- }
12276
- }, {
12277
- path: "/admin/question/default-question-general-list",
12278
- title: "Default question general class list",
12279
- component: function component() {
12280
- return React__default.createElement(QuestionBankList$1, {
12281
- isDefaultQuestion: false,
12282
- isDefaultQuestionGeneral: true
12283
- });
12284
- }
12349
+ component: QuestionBankList
12285
12350
  }, {
12286
12351
  path: "/admin/question/question-category",
12287
12352
  title: "Question category",
@@ -12457,7 +12522,7 @@ var SemesterSelector = function SemesterSelector(_ref) {
12457
12522
  }));
12458
12523
  };
12459
12524
 
12460
- var schema$d = yup.object({
12525
+ var schema$e = yup.object({
12461
12526
  beginDate: yup.string().required("Begin date is required"),
12462
12527
  endDate: yup.string().required("End date is required"),
12463
12528
  timeSemester: yup.string().required("Time Semester is required"),
@@ -12493,7 +12558,7 @@ var AssignmentDetailModal = function AssignmentDetailModal(props, ref) {
12493
12558
  return React__default.createElement(formik.Formik, {
12494
12559
  initialValues: assignmentDetail,
12495
12560
  enableReinitialize: true,
12496
- validationSchema: schema$d,
12561
+ validationSchema: schema$e,
12497
12562
  onSubmit: function onSubmit(values, actions) {
12498
12563
  onConfirm(values);
12499
12564
  actions.resetForm();
@@ -14181,7 +14246,7 @@ var SkillSelector$1 = function SkillSelector(_ref) {
14181
14246
  });
14182
14247
  };
14183
14248
 
14184
- var schema$e = yup.object({
14249
+ var schema$f = yup.object({
14185
14250
  name: yup.string().required("Name is required"),
14186
14251
  isConference: yup.boolean().required("Is conference is required"),
14187
14252
  conferenceRubricId: yup.number().nullable().test("Test conference rubric id", "Conference rubric is required", function () {
@@ -14569,7 +14634,7 @@ var SessionTemplateDetail = function SessionTemplateDetail() {
14569
14634
  return React__default.createElement(formik.Formik, {
14570
14635
  initialValues: sessionTemplateDetail,
14571
14636
  enableReinitialize: true,
14572
- validationSchema: schema$e,
14637
+ validationSchema: schema$f,
14573
14638
  onSubmit: function onSubmit(values) {
14574
14639
  confirmData(values);
14575
14640
  setEdited(false);
@@ -15122,7 +15187,7 @@ var useSessionTemplateGeneralClassDetail = function useSessionTemplateGeneralCla
15122
15187
  };
15123
15188
 
15124
15189
  var LINK_TO_DEFAULT_QUESTION_GENERAL_CLASS = "/admin/question/default-question-general-list";
15125
- var schema$f = yup.object({
15190
+ var schema$g = yup.object({
15126
15191
  name: yup.string().trim().required("Name is required"),
15127
15192
  subjectId: yup.number().required("Subject is required").test("Test subject", "Subject is required", function (value) {
15128
15193
  return value > 0;
@@ -15206,7 +15271,7 @@ var SessionTemplateGeneralClassDetail = function SessionTemplateGeneralClassDeta
15206
15271
  return React__default.createElement(formik.Formik, {
15207
15272
  initialValues: sessionTemplateGeneralClassDetail,
15208
15273
  enableReinitialize: true,
15209
- validationSchema: schema$f,
15274
+ validationSchema: schema$g,
15210
15275
  onSubmit: function onSubmit(values) {
15211
15276
  confirmData(values);
15212
15277
  setEdited(false);
@@ -15413,7 +15478,7 @@ var SessionTemplateGeneralClassDetail = function SessionTemplateGeneralClassDeta
15413
15478
  });
15414
15479
  };
15415
15480
 
15416
- var schema$g = yup.object({
15481
+ var schema$h = yup.object({
15417
15482
  learningSupportCategoryId: yup.number().test("testLearningSupportCategoryId", "Invalid category", function (number) {
15418
15483
  return !!number && number >= 1;
15419
15484
  }),
@@ -15443,7 +15508,7 @@ var CustomAlertDetailModal = function CustomAlertDetailModal(props, ref) {
15443
15508
  return React__default.createElement(formik.Formik, {
15444
15509
  initialValues: customAlertDetail,
15445
15510
  enableReinitialize: true,
15446
- validationSchema: schema$g,
15511
+ validationSchema: schema$h,
15447
15512
  onSubmit: function onSubmit(values, actions) {
15448
15513
  onConfirm(values);
15449
15514
  actions.resetForm();
@@ -16017,7 +16082,7 @@ var CustomAlertList = function CustomAlertList() {
16017
16082
 
16018
16083
  var certificate = {"certificate-item":"_3DVMZ","add-breakpoint":"_3zOGW","box-item":"_3DQwX"};
16019
16084
 
16020
- var schema$h = yup.object({
16085
+ var schema$i = yup.object({
16021
16086
  name: yup.string().required("Name is required"),
16022
16087
  certificateItems: yup.array().test("Text label required", "Text is required", function (value) {
16023
16088
  return value === null || value === void 0 ? void 0 : value.every(function (item) {
@@ -16042,7 +16107,7 @@ var CertificateDetailModal = function CertificateDetailModal(props, ref) {
16042
16107
  return React__default.createElement(formik.Formik, {
16043
16108
  initialValues: certificateDetail,
16044
16109
  enableReinitialize: true,
16045
- validationSchema: schema$h,
16110
+ validationSchema: schema$i,
16046
16111
  onSubmit: function onSubmit(values, actions) {
16047
16112
  var _values$certificateIt;
16048
16113
 
@@ -17331,6 +17396,7 @@ var HighImpact = function HighImpact(_ref) {
17331
17396
  }, [data]);
17332
17397
  if (!data) return React__default.createElement(Loading, null);
17333
17398
  var series = [{
17399
+ name: "",
17334
17400
  data: ratings
17335
17401
  }];
17336
17402
  var options = {
@@ -17524,7 +17590,10 @@ var Quantity = function Quantity(_ref) {
17524
17590
  if (!data) return React__default.createElement(Loading, null);
17525
17591
  var teacherPercentage = data.teacherPercentage,
17526
17592
  studentPercentage = data.studentPercentage,
17527
- assistantPercentage = data.assistantPercentage;
17593
+ assistantPercentage = data.assistantPercentage,
17594
+ numberOfTeachers = data.numberOfTeachers,
17595
+ numberOfStudents = data.numberOfStudents,
17596
+ numberOfAssistants = data.numberOfAssistants;
17528
17597
  var series = [teacherPercentage, studentPercentage, assistantPercentage].map(function (number) {
17529
17598
  return Number(number.toFixed(2));
17530
17599
  });
@@ -17550,15 +17619,15 @@ var Quantity = function Quantity(_ref) {
17550
17619
  var details = [{
17551
17620
  label: "Teachers",
17552
17621
  color: colors$3[0],
17553
- value: teacherPercentage
17622
+ value: numberOfTeachers
17554
17623
  }, {
17555
17624
  label: "Students",
17556
17625
  color: colors$3[1],
17557
- value: studentPercentage
17626
+ value: numberOfStudents
17558
17627
  }, {
17559
17628
  label: "Assistants",
17560
17629
  color: colors$3[2],
17561
- value: assistantPercentage
17630
+ value: numberOfAssistants
17562
17631
  }];
17563
17632
  return React__default.createElement("div", {
17564
17633
  className: "d-flex h-100"
@@ -17572,8 +17641,6 @@ var Quantity = function Quantity(_ref) {
17572
17641
  bordered: true,
17573
17642
  size: "sm"
17574
17643
  }, React__default.createElement("tbody", null, details.map(function (item) {
17575
- var _item$value;
17576
-
17577
17644
  return React__default.createElement("tr", {
17578
17645
  key: item.label
17579
17646
  }, React__default.createElement("td", null, item.label), React__default.createElement("td", {
@@ -17583,8 +17650,8 @@ var Quantity = function Quantity(_ref) {
17583
17650
  style: {
17584
17651
  backgroundColor: item.color
17585
17652
  }
17586
- })), React__default.createElement("td", null, Number(((_item$value = item.value) === null || _item$value === void 0 ? void 0 : _item$value.toFixed(2)) || "0"), "%"));
17587
- }))))), React__default.createElement("div", {
17653
+ })), React__default.createElement("td", null, item.value));
17654
+ }))), React__default.createElement("p", null, "The number of user for each role"))), React__default.createElement("div", {
17588
17655
  className: "d-flex align-items-end"
17589
17656
  }, React__default.createElement(ReactApexChart, {
17590
17657
  options: options,