touchstudy-core 0.1.183 → 0.1.185

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
@@ -11682,10 +11682,10 @@ var isEqual$2 = function isEqual(prev, next) {
11682
11682
  };
11683
11683
  var QuestionBlock$1 = React.memo(QuestionBlock, isEqual$2);
11684
11684
 
11685
- var _excluded$7 = ["data", "path", "isMath", "open", "isLoadingCategories", "isLoadingQuestionTypes", "optionKey", "categories", "questionTypes", "disabled", "onDelete", "onOpenSubCategoryMenu", "onOpenCategoryMenu", "onCloseCategoryMenu", "onCloseQuestionTypeMenu", "onOpenQuestionTypeMenu"];
11685
+ var _excluded$7 = ["data", "path", "isMath", "open", "isLoadingCategories", "isLoadingQuestionTypes", "optionKey", "categories", "questionTypes", "disabled", "onDelete", "onOpenSubCategoryMenu", "onOpenCategoryMenu", "onCloseCategoryMenu", "onCloseQuestionTypeMenu", "onOpenQuestionTypeMenu", "onQuestioStartOrderChange"];
11686
11686
  var _$3 = _$a;
11687
11687
  var QuestionGroupBlockBody = function QuestionGroupBlockBody(_ref) {
11688
- var _data$articles$3, _data$articles$3$cate, _data$articles$4, _data$articles$4$cate;
11688
+ var _data$articles$3, _data$articles$3$cate, _data$articles$4, _data$articles$4$cate, _questions$2;
11689
11689
  var data = _ref.data,
11690
11690
  path = _ref.path,
11691
11691
  isMath = _ref.isMath,
@@ -11702,8 +11702,10 @@ var QuestionGroupBlockBody = function QuestionGroupBlockBody(_ref) {
11702
11702
  onCloseCategoryMenu = _ref.onCloseCategoryMenu,
11703
11703
  onCloseQuestionTypeMenu = _ref.onCloseQuestionTypeMenu,
11704
11704
  onOpenQuestionTypeMenu = _ref.onOpenQuestionTypeMenu,
11705
+ onQuestioStartOrderChange = _ref.onQuestioStartOrderChange,
11705
11706
  formikProps = _objectWithoutPropertiesLoose(_ref, _excluded$7);
11706
11707
  var errors = formikProps.errors;
11708
+ var startOrderRef = React.useRef(null);
11707
11709
  var articles = data.articles,
11708
11710
  questions = data.questions;
11709
11711
  var blockErrors = _$3.get(errors, path);
@@ -11711,6 +11713,22 @@ var QuestionGroupBlockBody = function QuestionGroupBlockBody(_ref) {
11711
11713
  var _data$articles$, _data$articles$$categ, _data$articles$2, _data$articles$2$cate;
11712
11714
  onOpenQuestionTypeMenu(key, (_data$articles$ = data.articles[0]) === null || _data$articles$ === void 0 ? void 0 : (_data$articles$$categ = _data$articles$.categories) === null || _data$articles$$categ === void 0 ? void 0 : _data$articles$$categ[0], (_data$articles$2 = data.articles[0]) === null || _data$articles$2 === void 0 ? void 0 : (_data$articles$2$cate = _data$articles$2.categories) === null || _data$articles$2$cate === void 0 ? void 0 : _data$articles$2$cate[1]);
11713
11715
  }, [(_data$articles$3 = data.articles[0]) === null || _data$articles$3 === void 0 ? void 0 : (_data$articles$3$cate = _data$articles$3.categories) === null || _data$articles$3$cate === void 0 ? void 0 : _data$articles$3$cate[0], (_data$articles$4 = data.articles[0]) === null || _data$articles$4 === void 0 ? void 0 : (_data$articles$4$cate = _data$articles$4.categories) === null || _data$articles$4$cate === void 0 ? void 0 : _data$articles$4$cate[1]]);
11716
+ var debounceQuestionStartOrderChange = _$3.debounce(onQuestioStartOrderChange, 300);
11717
+ var handleChangeStartQuestionOrder = function handleChangeStartQuestionOrder(e) {
11718
+ var value = e.target.value.replace(/\D/g, '');
11719
+ var order = +value;
11720
+ if (Number.isNaN(order) || order === 0) {
11721
+ order = 1;
11722
+ if (order === 0 && startOrderRef.current) {
11723
+ startOrderRef.current.value = "1";
11724
+ }
11725
+ }
11726
+ debounceQuestionStartOrderChange(order - 1);
11727
+ };
11728
+ React.useEffect(function () {
11729
+ var _questions$;
11730
+ if (startOrderRef.current) startOrderRef.current.value = "" + ((((_questions$ = questions[0]) === null || _questions$ === void 0 ? void 0 : _questions$.questionOrder) || 0) + 1);
11731
+ }, [(_questions$2 = questions[0]) === null || _questions$2 === void 0 ? void 0 : _questions$2.questionOrder]);
11714
11732
  return React__default.createElement(formik.FieldArray, {
11715
11733
  name: path + ".articles",
11716
11734
  render: function render(arrayHelpers) {
@@ -11763,7 +11781,26 @@ var QuestionGroupBlockBody = function QuestionGroupBlockBody(_ref) {
11763
11781
  }, i18n.t(isMath ? "article" : "korean_article")))), React__default.createElement(material.Stack, {
11764
11782
  gap: 1,
11765
11783
  direction: "column"
11766
- }, React__default.createElement(ListView, {
11784
+ }, React__default.createElement(material.Box, null, React__default.createElement(material.FormControl, {
11785
+ sx: {
11786
+ display: "flex",
11787
+ flexDirection: "row",
11788
+ alignItems: "center",
11789
+ gap: 1
11790
+ }
11791
+ }, React__default.createElement(material.FormLabel, {
11792
+ sx: {
11793
+ fontWeight: 600
11794
+ },
11795
+ htmlFor: "start_order"
11796
+ }, i18n.t("start_order")), React__default.createElement(material.TextField, {
11797
+ id: "start_order",
11798
+ inputRef: startOrderRef,
11799
+ onChange: handleChangeStartQuestionOrder,
11800
+ type: "number",
11801
+ size: "small",
11802
+ disabled: disabled
11803
+ }))), React__default.createElement(ListView, {
11767
11804
  data: questions,
11768
11805
  render: function render(question, index) {
11769
11806
  return React__default.createElement(QuestionBlock$1, Object.assign({
@@ -11809,7 +11846,7 @@ var isEqual$3 = function isEqual(prev, next) {
11809
11846
  };
11810
11847
  var QuestionGroupBlockBody$1 = React.memo(QuestionGroupBlockBody, isEqual$3);
11811
11848
 
11812
- var _excluded$8 = ["expandedIndex", "open", "paths", "path", "isMath", "data", "categories", "isLoadingCategories", "isLoadingQuestionTypes", "questionTypes", "optionKey", "disabled", "onToggle", "onQuestionCountChange", "onDelete", "onOpenSubCategoryMenu", "onOpenCategoryMenu", "onCloseCategoryMenu", "onCopiedPrevQuestionGroup", "onCloseQuestionTypeMenu", "onOpenQuestionTypeMenu"];
11849
+ var _excluded$8 = ["expandedIndex", "open", "paths", "path", "isMath", "data", "categories", "isLoadingCategories", "isLoadingQuestionTypes", "questionTypes", "optionKey", "disabled", "isTextbook", "onToggle", "onQuestionCountChange", "onDelete", "onOpenSubCategoryMenu", "onOpenCategoryMenu", "onCloseCategoryMenu", "onCopiedPrevQuestionGroup", "onCloseQuestionTypeMenu", "onOpenQuestionTypeMenu"];
11813
11850
  var _$4 = _$a;
11814
11851
  var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
11815
11852
  var _data$articles$3, _data$articles$3$cate, _data$articles$3$cate2, _data$articles$4, _data$articles$4$cate, _data$articles$4$cate2;
@@ -11825,6 +11862,7 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
11825
11862
  questionTypes = _ref.questionTypes,
11826
11863
  optionKey = _ref.optionKey,
11827
11864
  disabled = _ref.disabled,
11865
+ isTextbook = _ref.isTextbook,
11828
11866
  onToggle = _ref.onToggle,
11829
11867
  onQuestionCountChange = _ref.onQuestionCountChange,
11830
11868
  onDelete = _ref.onDelete,
@@ -11857,6 +11895,16 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
11857
11895
  setFieldValue(path + ".questionCount", questionCount);
11858
11896
  onQuestionCountChange(questionCount, expandedIndex);
11859
11897
  };
11898
+ var handleChangeStartQuestionOrder = function handleChangeStartQuestionOrder(order) {
11899
+ var _questions$;
11900
+ var questions = data.questions;
11901
+ if (((_questions$ = questions[0]) === null || _questions$ === void 0 ? void 0 : _questions$.questionOrder) === order) return;
11902
+ setFieldValue(path + ".questions", questions.map(function (q, index) {
11903
+ return _extends({}, q, {
11904
+ questionOrder: order + index
11905
+ });
11906
+ }));
11907
+ };
11860
11908
  var handleChangeAnswerCount = function handleChangeAnswerCount(val) {
11861
11909
  var answerCount = (val === null || val === void 0 ? void 0 : val.value) || 1;
11862
11910
  setFieldValue(path + ".answerCount", answerCount);
@@ -11904,6 +11952,13 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
11904
11952
  var handleChangeCategory = function handleChangeCategory(val) {
11905
11953
  setFieldValue(path + ".articles[0].categoryOptions", val !== null && val !== void 0 && val.value ? [val] : []);
11906
11954
  setFieldValue(path + ".articles[0].categories", val !== null && val !== void 0 && val.value ? [val.value] : []);
11955
+ var questions = data.questions;
11956
+ setFieldValue(path + ".questions", questions.map(function (q) {
11957
+ return _extends({}, q, {
11958
+ questionTypeId: null,
11959
+ questionType: null
11960
+ });
11961
+ }));
11907
11962
  };
11908
11963
  var handleChangeSubCategory = function handleChangeSubCategory(val) {
11909
11964
  if (!(val !== null && val !== void 0 && val.value)) {
@@ -11916,6 +11971,13 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
11916
11971
  setFieldValue(path + ".articles[0].categories[1]", val.value);
11917
11972
  setFieldValue(path + ".articles[0].categoryOptions[1]", val);
11918
11973
  }
11974
+ var questions = data.questions;
11975
+ setFieldValue(path + ".questions", questions.map(function (q) {
11976
+ return _extends({}, q, {
11977
+ questionTypeId: null,
11978
+ questionType: null
11979
+ });
11980
+ }));
11919
11981
  };
11920
11982
  var summary = open ? "" : [t("number_questions", {
11921
11983
  n: data.questionCount
@@ -11927,6 +11989,8 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
11927
11989
  }).join(",") : ""].filter(function (i) {
11928
11990
  return !!i;
11929
11991
  }).join(" / ");
11992
+ var pageFromError = _$4.get(errors, path + ".pageFrom");
11993
+ var pageToError = _$4.get(errors, path + ".pageTo");
11930
11994
  var categoryError = _$4.get(errors, path + ".articles[0].categories");
11931
11995
  var blockErrors = _$4.get(errors, path);
11932
11996
  return React__default.createElement(material.Accordion, {
@@ -12106,7 +12170,65 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
12106
12170
  isDisabled: disabled
12107
12171
  }));
12108
12172
  }
12109
- })))), isMath && React__default.createElement(material.Box, {
12173
+ }))), !isMath && isTextbook && React__default.createElement(material.Grid, {
12174
+ item: true,
12175
+ xs: 3
12176
+ }, React__default.createElement(material.FormGroup, {
12177
+ sx: {
12178
+ marginRight: 2
12179
+ }
12180
+ }, React__default.createElement(material.FormLabel, {
12181
+ htmlFor: "question_count",
12182
+ className: "form-label"
12183
+ }, t("page_from")), React__default.createElement(formik.Field, {
12184
+ name: path + ".pageFrom",
12185
+ render: function render(_ref6) {
12186
+ var field = _ref6.field;
12187
+ return React__default.createElement(material.TextField, Object.assign({
12188
+ placeholder: t("page_from"),
12189
+ type: "number"
12190
+ }, field, {
12191
+ size: "small",
12192
+ onKeyDown: handleKeyDown,
12193
+ disabled: disabled
12194
+ }));
12195
+ }
12196
+ }), !!pageFromError && React__default.createElement(material.Typography, {
12197
+ fontWeight: 500,
12198
+ fontSize: "10px",
12199
+ lineHeight: "11.93px",
12200
+ mt: 1,
12201
+ color: !pageFromError ? "#97A1AF" : "#F34B4B"
12202
+ }, pageFromError))), !isMath && isTextbook && React__default.createElement(material.Grid, {
12203
+ item: true,
12204
+ xs: 3
12205
+ }, React__default.createElement(material.FormGroup, {
12206
+ sx: {
12207
+ marginRight: 2
12208
+ }
12209
+ }, React__default.createElement(material.FormLabel, {
12210
+ htmlFor: "question_count",
12211
+ className: "form-label"
12212
+ }, t("page_to")), React__default.createElement(formik.Field, {
12213
+ name: path + ".pageTo",
12214
+ render: function render(_ref7) {
12215
+ var field = _ref7.field;
12216
+ return React__default.createElement(material.TextField, Object.assign({
12217
+ placeholder: t("page_to"),
12218
+ type: "number"
12219
+ }, field, {
12220
+ size: "small",
12221
+ onKeyDown: handleKeyDown,
12222
+ disabled: disabled
12223
+ }));
12224
+ }
12225
+ }), !!pageToError && React__default.createElement(material.Typography, {
12226
+ fontWeight: 500,
12227
+ fontSize: "10px",
12228
+ lineHeight: "11.93px",
12229
+ mt: 1,
12230
+ color: !pageToError ? "#97A1AF" : "#F34B4B"
12231
+ }, pageToError)))), isMath && React__default.createElement(material.Box, {
12110
12232
  sx: {
12111
12233
  display: "flex"
12112
12234
  }
@@ -12118,6 +12240,83 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
12118
12240
  sx: {
12119
12241
  whiteSpace: "nowrap"
12120
12242
  }
12243
+ }, t("category_copy")))), isMath && isTextbook && React__default.createElement(material.Stack, {
12244
+ direction: "row",
12245
+ flexWrap: "nowrap"
12246
+ }, React__default.createElement(material.Grid, {
12247
+ container: true,
12248
+ flexGrow: 1,
12249
+ direction: "row"
12250
+ }, React__default.createElement(material.Grid, {
12251
+ item: true,
12252
+ xs: 3
12253
+ }, React__default.createElement(material.FormGroup, {
12254
+ sx: {
12255
+ marginRight: 2
12256
+ }
12257
+ }, React__default.createElement(material.FormLabel, {
12258
+ htmlFor: "question_count",
12259
+ className: "form-label"
12260
+ }, t("page_from")), React__default.createElement(formik.Field, {
12261
+ name: path + ".pageFrom",
12262
+ render: function render(_ref8) {
12263
+ var field = _ref8.field;
12264
+ return React__default.createElement(material.TextField, Object.assign({
12265
+ placeholder: t("page_from"),
12266
+ type: "number"
12267
+ }, field, {
12268
+ size: "small",
12269
+ onKeyDown: handleKeyDown,
12270
+ disabled: disabled
12271
+ }));
12272
+ }
12273
+ }), !!pageFromError && React__default.createElement(material.Typography, {
12274
+ fontWeight: 500,
12275
+ fontSize: "10px",
12276
+ lineHeight: "11.93px",
12277
+ mt: 1,
12278
+ color: !pageFromError ? "#97A1AF" : "#F34B4B"
12279
+ }, pageFromError))), React__default.createElement(material.Grid, {
12280
+ item: true,
12281
+ xs: 3
12282
+ }, React__default.createElement(material.FormGroup, {
12283
+ sx: {
12284
+ marginRight: 2
12285
+ }
12286
+ }, React__default.createElement(material.FormLabel, {
12287
+ htmlFor: "question_count",
12288
+ className: "form-label"
12289
+ }, t("page_to")), React__default.createElement(formik.Field, {
12290
+ name: path + ".pageTo",
12291
+ render: function render(_ref9) {
12292
+ var field = _ref9.field;
12293
+ return React__default.createElement(material.TextField, Object.assign({
12294
+ placeholder: t("page_to"),
12295
+ type: "number"
12296
+ }, field, {
12297
+ size: "small",
12298
+ onKeyDown: handleKeyDown,
12299
+ disabled: disabled
12300
+ }));
12301
+ }
12302
+ }), !!pageToError && React__default.createElement(material.Typography, {
12303
+ fontWeight: 500,
12304
+ fontSize: "10px",
12305
+ lineHeight: "11.93px",
12306
+ mt: 1,
12307
+ color: !pageToError ? "#97A1AF" : "#F34B4B"
12308
+ }, pageToError)))), React__default.createElement(material.Box, {
12309
+ sx: {
12310
+ display: "flex",
12311
+ visibility: "hidden"
12312
+ }
12313
+ }, React__default.createElement(material.Button, {
12314
+ variant: "contained",
12315
+ color: "success",
12316
+ disabled: true,
12317
+ sx: {
12318
+ whiteSpace: "nowrap"
12319
+ }
12121
12320
  }, t("category_copy"))))) : React__default.createElement(material.Typography, {
12122
12321
  fontWeight: 600,
12123
12322
  sx: {
@@ -12140,6 +12339,7 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
12140
12339
  isLoadingQuestionTypes: isLoadingQuestionTypes,
12141
12340
  optionKey: optionKey,
12142
12341
  disabled: disabled,
12342
+ onQuestioStartOrderChange: handleChangeStartQuestionOrder,
12143
12343
  onDelete: onDelete,
12144
12344
  onOpenSubCategoryMenu: onOpenSubCategoryMenu,
12145
12345
  onOpenCategoryMenu: onOpenCategoryMenu,
@@ -12259,6 +12459,8 @@ var _reduceToMathArticles = function reduceToMathArticles(data, isMath) {
12259
12459
  if (key === "articles") {
12260
12460
  var _values$key;
12261
12461
  values[key] = (_values$key = values[key]) !== null && _values$key !== void 0 && _values$key.length ? [values[key][0]] : [DEFAULT_ARTICLE];
12462
+ } else if (key === "questionType" || key === "questionTypeId") {
12463
+ values[key] = null;
12262
12464
  } else if (typeof values[key] === "object" && values[key] !== null) {
12263
12465
  _reduceToMathArticles(values[key]);
12264
12466
  }
@@ -16594,7 +16796,7 @@ var ActionsTooltip = function ActionsTooltip(_ref) {
16594
16796
  };
16595
16797
 
16596
16798
  var NoteItem = function NoteItem(_ref) {
16597
- var _user$roles;
16799
+ var _user$roles, _data$questionGroupIn;
16598
16800
  var data = _ref.data,
16599
16801
  openTooltip = _ref.openTooltip,
16600
16802
  actions = _ref.actions,
@@ -16649,7 +16851,7 @@ var NoteItem = function NoteItem(_ref) {
16649
16851
  direction: "row",
16650
16852
  alignItems: "center",
16651
16853
  gap: 1
16652
- }, React__default.createElement(material.Typography, Object.assign({}, NoteItemStyles.text.left), data.examSessionId ? t("article") + " " + data.articleNumber : "" + data.fullName), React__default.createElement(material.Typography, Object.assign({}, NoteItemStyles.text.middle), data.examSessionId ? "" + t("number_question", {
16854
+ }, React__default.createElement(material.Typography, Object.assign({}, NoteItemStyles.text.left), data.examSessionId ? t("article") + " " + (((_data$questionGroupIn = data.questionGroupIndex) != null ? _data$questionGroupIn : 0) + 1) : "" + data.fullName), React__default.createElement(material.Typography, Object.assign({}, NoteItemStyles.text.middle), data.examSessionId ? "" + t("number_question", {
16653
16855
  number: (data.questionOrder || 0) + 1
16654
16856
  }) : "" + utcToLocalTime(data.createdAt, t("date_format") + " HH:mm")), data.examSessionId && React__default.createElement(material.Typography, Object.assign({}, NoteItemStyles.text.right), data.categoryName)), React__default.createElement(material.Typography, Object.assign({
16655
16857
  className: "truncate"
@@ -19965,7 +20167,7 @@ var AnswerItem = function AnswerItem(_ref) {
19965
20167
  return React__default.createElement("div", {
19966
20168
  className: "" + printStyles["avoid-break-inside"],
19967
20169
  style: {
19968
- borderBottom: (data === null || data === void 0 ? void 0 : data.article) !== (nextData === null || nextData === void 0 ? void 0 : nextData.article) && !isFirst && !isLast ? "1px solid #E4E7EC" : ""
20170
+ borderBottom: (data === null || data === void 0 ? void 0 : data.questionGroupIndex) !== (nextData === null || nextData === void 0 ? void 0 : nextData.questionGroupIndex) && !isFirst && !isLast ? "1px solid #E4E7EC" : ""
19969
20171
  },
19970
20172
  key: data.id
19971
20173
  }, React__default.createElement("div", {
@@ -21154,9 +21356,9 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
21154
21356
  });
21155
21357
  React.useEffect(function () {
21156
21358
  if (chartRef.current) {
21157
- setIsRendered(timelyOrderQuestion.article);
21359
+ setIsRendered(timelyOrderQuestion.questionGroupIndex);
21158
21360
  }
21159
- }, [timelyOrderQuestion.article]);
21361
+ }, [timelyOrderQuestion.questionGroupIndex]);
21160
21362
  return React__default.createElement("div", {
21161
21363
  className: "" + printStyles["avoid-break-inside"]
21162
21364
  }, React__default.createElement(material.Typography, {
@@ -21166,7 +21368,7 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
21166
21368
  fontWeight: 700,
21167
21369
  color: "#414E62"
21168
21370
  }
21169
- }, t("article_number"), " ", timelyOrderQuestion.article), React__default.createElement("div", {
21371
+ }, t("article_number"), " ", timelyOrderQuestion.questionGroupIndex + 1), React__default.createElement("div", {
21170
21372
  className: styles$7["compareChart"] + " " + printStyles["avoid-break-inside"]
21171
21373
  }, React__default.createElement("div", {
21172
21374
  className: "" + styles$7["prevChart"]
@@ -21213,7 +21415,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
21213
21415
  return React__default.createElement("div", {
21214
21416
  className: "" + printStyles["avoid-break-inside"],
21215
21417
  style: {
21216
- borderBottom: (data === null || data === void 0 ? void 0 : data.article) !== (nextData === null || nextData === void 0 ? void 0 : nextData.article) && !isFirst && !isLast ? "1px solid #E4E7EC" : ""
21418
+ borderBottom: (data === null || data === void 0 ? void 0 : data.questionGroupIndex) !== (nextData === null || nextData === void 0 ? void 0 : nextData.questionGroupIndex) && !isFirst && !isLast ? "1px solid #E4E7EC" : ""
21217
21419
  },
21218
21420
  key: data.id
21219
21421
  }, React__default.createElement("div", {
@@ -32377,7 +32579,8 @@ var ExamDetailForm = function ExamDetailForm(_ref) {
32377
32579
  onQuestionCountChange: handleChangeQuestionCount,
32378
32580
  onCopiedPrevQuestionGroup: handleCopiedPrevQuestionGroup,
32379
32581
  onDelete: handleOpenConfirmDelete,
32380
- isMath: isMath
32582
+ isMath: isMath,
32583
+ isTextbook: false
32381
32584
  }, formikProps));
32382
32585
  }
32383
32586
  }))), React__default.createElement(material.Grid, {
@@ -33489,255 +33692,6 @@ var ArticleDialog = function ArticleDialog(_ref) {
33489
33692
  }, t("add")))));
33490
33693
  };
33491
33694
 
33492
- var _ChapterBox = function ChapterBox(_ref) {
33493
- var parentChapterId = _ref.parentChapterId,
33494
- data = _ref.data,
33495
- subject = _ref.subject,
33496
- categoryOptions = _ref.categoryOptions,
33497
- isReadonly = _ref.isReadonly,
33498
- onClickAddSubchapter = _ref.onClickAddSubchapter,
33499
- onChangeName = _ref.onChangeName,
33500
- onChangePageFrom = _ref.onChangePageFrom,
33501
- onChangePageTo = _ref.onChangePageTo,
33502
- onAddArticle = _ref.onAddArticle,
33503
- onRemoveArticle = _ref.onRemoveArticle,
33504
- handleCheckArticle = _ref.handleCheckArticle,
33505
- onUpdateArticleQuestionCount = _ref.onUpdateArticleQuestionCount,
33506
- onUpdateArticleCategory = _ref.onUpdateArticleCategory,
33507
- onUpdateArticleQuestionAnswerCount = _ref.onUpdateArticleQuestionAnswerCount,
33508
- onUpdateArticleQuestion = _ref.onUpdateArticleQuestion,
33509
- onRemoveChapter = _ref.onRemoveChapter;
33510
- var _useTranslation = reactI18next.useTranslation(),
33511
- t = _useTranslation.t;
33512
- var _useState = React.useState(false),
33513
- isEditName = _useState[0],
33514
- setEditName = _useState[1];
33515
- var toggleEditName = function toggleEditName() {
33516
- if (isReadonly) {
33517
- setEditName(false);
33518
- return;
33519
- }
33520
- setEditName(!isEditName);
33521
- };
33522
- var handleKeyEnterName = function handleKeyEnterName(e) {
33523
- if (e.key === "Enter") {
33524
- handleSaveChapter(toggleEditName);
33525
- }
33526
- };
33527
- var handleSaveChapter = function handleSaveChapter(callback) {
33528
- callback();
33529
- };
33530
- var handleRemoveChapter = function handleRemoveChapter() {
33531
- onRemoveChapter === null || onRemoveChapter === void 0 ? void 0 : onRemoveChapter(data.name, data.id, parentChapterId);
33532
- };
33533
- var handleClickAddSubchapter = function handleClickAddSubchapter() {
33534
- onClickAddSubchapter === null || onClickAddSubchapter === void 0 ? void 0 : onClickAddSubchapter({
33535
- id: data.id,
33536
- name: data.name
33537
- });
33538
- };
33539
- var handleAddArticle = function handleAddArticle() {
33540
- onAddArticle === null || onAddArticle === void 0 ? void 0 : onAddArticle(data);
33541
- };
33542
- var theme = material.useTheme();
33543
- var isTabletUp = material.useMediaQuery(theme.breakpoints.up('lg'));
33544
- var handleChangeName = function handleChangeName(e) {
33545
- var text = e.target.value;
33546
- onChangeName === null || onChangeName === void 0 ? void 0 : onChangeName(text, data.id, parentChapterId);
33547
- };
33548
- var handleChangePageFrom = function handleChangePageFrom(e) {
33549
- var value = +e.target.value.replace(/[^0-9]/g, "");
33550
- e.target.value = value.toString();
33551
- onChangePageFrom === null || onChangePageFrom === void 0 ? void 0 : onChangePageFrom(value, data.id, parentChapterId);
33552
- };
33553
- var handleChangePageTo = function handleChangePageTo(e) {
33554
- var value = +e.target.value.replace(/[^0-9]/g, "");
33555
- e.target.value = value.toString();
33556
- onChangePageTo === null || onChangePageTo === void 0 ? void 0 : onChangePageTo(value, data.id, parentChapterId);
33557
- };
33558
- return React__default.createElement("div", {
33559
- className: "border-1 border-primary rounded-2"
33560
- }, React__default.createElement("div", {
33561
- className: "border-start-0 border-end-0 border-top-0 border-bottom-1 border-primary border p-2 position-relative"
33562
- }, !isEditName ? React__default.createElement("div", {
33563
- className: "text-center w-100 px-5 " + (isReadonly ? "" : "pointer"),
33564
- onClick: toggleEditName
33565
- }, React__default.createElement(material.Typography, {
33566
- className: "w-100 fs-5 fw-bold"
33567
- }, data.name)) : React__default.createElement(InputText, {
33568
- className: "w-100 px-5",
33569
- value: data.name,
33570
- inputProps: {
33571
- className: "text-center fs-5 fw-bold"
33572
- },
33573
- placeholder: t("chapter_name_placeholder"),
33574
- onBlur: toggleEditName,
33575
- onKeyDown: handleKeyEnterName,
33576
- onChange: handleChangeName
33577
- }), !isReadonly && React__default.createElement(material.IconButton, {
33578
- className: "position-absolute",
33579
- disabled: isReadonly,
33580
- style: {
33581
- right: 12,
33582
- top: "50%",
33583
- transform: "translateY(-50%)"
33584
- },
33585
- onClick: handleRemoveChapter
33586
- }, React__default.createElement(fa.FaTrash, {
33587
- size: 16,
33588
- className: "text-danger"
33589
- }))), React__default.createElement("div", {
33590
- className: "p-3 d-flex justify-content-between"
33591
- }, React__default.createElement(material.Grid, {
33592
- container: true
33593
- }, React__default.createElement(material.Grid, {
33594
- item: true,
33595
- xs: 12
33596
- }, React__default.createElement(material.Grid, {
33597
- container: true,
33598
- spacing: 2
33599
- }, !isTabletUp && React__default.createElement(material.Grid, {
33600
- item: true,
33601
- xs: 12
33602
- }, React__default.createElement(material.Stack, {
33603
- direction: "row",
33604
- justifyContent: "end",
33605
- spacing: 2
33606
- }, !parentChapterId && !data.articles.length && React__default.createElement(material.Button, {
33607
- className: "mx-1",
33608
- variant: "contained",
33609
- color: "primary",
33610
- disabled: isReadonly,
33611
- startIcon: React__default.createElement(fa.FaPlus, {
33612
- size: 12
33613
- }),
33614
- onClick: handleClickAddSubchapter
33615
- }, t("add_subchapter")), data.subChapters.length === 0 && React__default.createElement(material.Button, {
33616
- className: "mx-1",
33617
- variant: "contained",
33618
- color: "success",
33619
- disabled: isReadonly,
33620
- startIcon: React__default.createElement(fa.FaPlus, {
33621
- size: 12
33622
- }),
33623
- onClick: handleAddArticle
33624
- }, t("add_article")))), React__default.createElement(material.Grid, {
33625
- item: true,
33626
- xs: 12,
33627
- lg: 4,
33628
- sx: {
33629
- display: "flex",
33630
- alignItems: "center",
33631
- width: "50%"
33632
- }
33633
- }, React__default.createElement("label", {
33634
- style: {
33635
- minWidth: "90px"
33636
- },
33637
- className: "fw-bold text-nowrap me-2"
33638
- }, t("page.from"), ":"), React__default.createElement(InputText, {
33639
- type: "number",
33640
- className: "w-100",
33641
- disabled: isReadonly,
33642
- value: data.pageFrom,
33643
- onChange: handleChangePageFrom,
33644
- placeholder: t("page.from_placeholder"),
33645
- error: data.pageFrom > data.pageTo || data.pageFrom < 0
33646
- })), React__default.createElement(material.Grid, {
33647
- item: true,
33648
- xs: 12,
33649
- lg: 4,
33650
- sx: {
33651
- display: "flex",
33652
- alignItems: "center",
33653
- width: "50%"
33654
- }
33655
- }, React__default.createElement("label", {
33656
- style: {
33657
- minWidth: "90px"
33658
- },
33659
- className: "fw-bold text-nowrap me-2"
33660
- }, t("page.to"), ":"), React__default.createElement(InputText, {
33661
- type: "number",
33662
- disabled: isReadonly,
33663
- className: "w-100",
33664
- value: data.pageTo,
33665
- onChange: handleChangePageTo,
33666
- placeholder: t("page.to_placeholder"),
33667
- error: data.pageTo < data.pageFrom
33668
- })), isTabletUp && React__default.createElement(material.Grid, {
33669
- item: true,
33670
- lg: 4
33671
- }, React__default.createElement(material.Stack, {
33672
- direction: "row",
33673
- justifyContent: "end",
33674
- spacing: 2
33675
- }, !parentChapterId && !data.articles.length && React__default.createElement(material.Button, {
33676
- className: "mx-1",
33677
- variant: "contained",
33678
- color: "primary",
33679
- disabled: isReadonly,
33680
- startIcon: React__default.createElement(fa.FaPlus, {
33681
- size: 12
33682
- }),
33683
- onClick: handleClickAddSubchapter
33684
- }, t("add_subchapter")), data.subChapters.length === 0 && React__default.createElement(material.Button, {
33685
- className: "mx-1",
33686
- variant: "contained",
33687
- color: "success",
33688
- disabled: isReadonly,
33689
- startIcon: React__default.createElement(fa.FaPlus, {
33690
- size: 12
33691
- }),
33692
- onClick: handleAddArticle
33693
- }, t("add_article")))))))), React__default.createElement("div", {
33694
- className: "p-3"
33695
- }, React__default.createElement(material.Stack, {
33696
- spacing: 2
33697
- }, data.subChapters.map(function (subchapter) {
33698
- return React__default.createElement(_ChapterBox, {
33699
- key: data.id + "-" + subchapter.id,
33700
- categoryOptions: categoryOptions,
33701
- subject: subject,
33702
- parentChapterId: data.id,
33703
- data: subchapter,
33704
- isReadonly: isReadonly,
33705
- onChangeName: onChangeName,
33706
- onChangePageFrom: onChangePageFrom,
33707
- onChangePageTo: onChangePageTo,
33708
- handleCheckArticle: handleCheckArticle,
33709
- onAddArticle: onAddArticle,
33710
- onRemoveArticle: onRemoveArticle,
33711
- onUpdateArticleQuestionCount: onUpdateArticleQuestionCount,
33712
- onUpdateArticleCategory: onUpdateArticleCategory,
33713
- onUpdateArticleQuestionAnswerCount: onUpdateArticleQuestionAnswerCount,
33714
- onUpdateArticleQuestion: onUpdateArticleQuestion,
33715
- onRemoveChapter: onRemoveChapter
33716
- });
33717
- }), data.subChapters.length === 0 && data.articles.map(function (article, index) {
33718
- return React__default.createElement(material.Stack, {
33719
- key: index
33720
- }, React__default.createElement(material.Stack, {
33721
- display: "flex",
33722
- flexDirection: "row",
33723
- gap: "8px",
33724
- alignItems: "center"
33725
- }, React__default.createElement(material.Checkbox, {
33726
- id: "textbook",
33727
- sx: {
33728
- display: "flex",
33729
- justifyContent: "start",
33730
- width: "fit-content"
33731
- },
33732
- onChange: function onChange(e) {
33733
- return handleCheckArticle(e, article);
33734
- }
33735
- }), React__default.createElement("label", {
33736
- htmlFor: "textbook"
33737
- }, t("select_article_create_exam"))));
33738
- }))));
33739
- };
33740
-
33741
33695
  var TextbookActionButtons = function TextbookActionButtons(_ref) {
33742
33696
  var isReadonly = _ref.isReadonly,
33743
33697
  textbook = _ref.textbook,
@@ -35022,7 +34976,8 @@ var ChapterBlockBody = function ChapterBlockBody(_ref) {
35022
34976
  onQuestionCountChange: handleChangeQuestionCount,
35023
34977
  onCopiedPrevQuestionGroup: onCopiedPrevQuestionGroup,
35024
34978
  onDelete: onDelete,
35025
- isMath: isMath
34979
+ isMath: isMath,
34980
+ isTextbook: true
35026
34981
  }, formikProps));
35027
34982
  }
35028
34983
  })), showAddQuestionGroup && React__default.createElement(material.Box, null, React__default.createElement(material.Button, {
@@ -38483,7 +38438,6 @@ exports.ArticleDialog = ArticleDialog;
38483
38438
  exports.AttendanceFormDialog = AttendanceFormDialog;
38484
38439
  exports.BASE_URL = BASE_URL;
38485
38440
  exports.BRIEF_GRADE_OPTIONS = BRIEF_GRADE_OPTIONS;
38486
- exports.ChapterBox = _ChapterBox;
38487
38441
  exports.ChatContainer = ChatContainer;
38488
38442
  exports.ChatTypes = types;
38489
38443
  exports.ClassDetail = ClassDetail;