touchstudy-core 0.1.183 → 0.1.184

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);
@@ -11927,6 +11975,8 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
11927
11975
  }).join(",") : ""].filter(function (i) {
11928
11976
  return !!i;
11929
11977
  }).join(" / ");
11978
+ var pageFromError = _$4.get(errors, path + ".pageFrom");
11979
+ var pageToError = _$4.get(errors, path + ".pageTo");
11930
11980
  var categoryError = _$4.get(errors, path + ".articles[0].categories");
11931
11981
  var blockErrors = _$4.get(errors, path);
11932
11982
  return React__default.createElement(material.Accordion, {
@@ -12106,7 +12156,65 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
12106
12156
  isDisabled: disabled
12107
12157
  }));
12108
12158
  }
12109
- })))), isMath && React__default.createElement(material.Box, {
12159
+ }))), !isMath && isTextbook && React__default.createElement(material.Grid, {
12160
+ item: true,
12161
+ xs: 3
12162
+ }, React__default.createElement(material.FormGroup, {
12163
+ sx: {
12164
+ marginRight: 2
12165
+ }
12166
+ }, React__default.createElement(material.FormLabel, {
12167
+ htmlFor: "question_count",
12168
+ className: "form-label"
12169
+ }, t("page_from")), React__default.createElement(formik.Field, {
12170
+ name: path + ".pageFrom",
12171
+ render: function render(_ref6) {
12172
+ var field = _ref6.field;
12173
+ return React__default.createElement(material.TextField, Object.assign({
12174
+ placeholder: t("page_from"),
12175
+ type: "number"
12176
+ }, field, {
12177
+ size: "small",
12178
+ onKeyDown: handleKeyDown,
12179
+ disabled: disabled
12180
+ }));
12181
+ }
12182
+ }), !!pageFromError && React__default.createElement(material.Typography, {
12183
+ fontWeight: 500,
12184
+ fontSize: "10px",
12185
+ lineHeight: "11.93px",
12186
+ mt: 1,
12187
+ color: !pageFromError ? "#97A1AF" : "#F34B4B"
12188
+ }, pageFromError))), !isMath && isTextbook && React__default.createElement(material.Grid, {
12189
+ item: true,
12190
+ xs: 3
12191
+ }, React__default.createElement(material.FormGroup, {
12192
+ sx: {
12193
+ marginRight: 2
12194
+ }
12195
+ }, React__default.createElement(material.FormLabel, {
12196
+ htmlFor: "question_count",
12197
+ className: "form-label"
12198
+ }, t("page_to")), React__default.createElement(formik.Field, {
12199
+ name: path + ".pageTo",
12200
+ render: function render(_ref7) {
12201
+ var field = _ref7.field;
12202
+ return React__default.createElement(material.TextField, Object.assign({
12203
+ placeholder: t("page_to"),
12204
+ type: "number"
12205
+ }, field, {
12206
+ size: "small",
12207
+ onKeyDown: handleKeyDown,
12208
+ disabled: disabled
12209
+ }));
12210
+ }
12211
+ }), !!pageToError && React__default.createElement(material.Typography, {
12212
+ fontWeight: 500,
12213
+ fontSize: "10px",
12214
+ lineHeight: "11.93px",
12215
+ mt: 1,
12216
+ color: !pageToError ? "#97A1AF" : "#F34B4B"
12217
+ }, pageToError)))), isMath && React__default.createElement(material.Box, {
12110
12218
  sx: {
12111
12219
  display: "flex"
12112
12220
  }
@@ -12118,6 +12226,83 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
12118
12226
  sx: {
12119
12227
  whiteSpace: "nowrap"
12120
12228
  }
12229
+ }, t("category_copy")))), isMath && isTextbook && React__default.createElement(material.Stack, {
12230
+ direction: "row",
12231
+ flexWrap: "nowrap"
12232
+ }, React__default.createElement(material.Grid, {
12233
+ container: true,
12234
+ flexGrow: 1,
12235
+ direction: "row"
12236
+ }, React__default.createElement(material.Grid, {
12237
+ item: true,
12238
+ xs: 3
12239
+ }, React__default.createElement(material.FormGroup, {
12240
+ sx: {
12241
+ marginRight: 2
12242
+ }
12243
+ }, React__default.createElement(material.FormLabel, {
12244
+ htmlFor: "question_count",
12245
+ className: "form-label"
12246
+ }, t("page_from")), React__default.createElement(formik.Field, {
12247
+ name: path + ".pageFrom",
12248
+ render: function render(_ref8) {
12249
+ var field = _ref8.field;
12250
+ return React__default.createElement(material.TextField, Object.assign({
12251
+ placeholder: t("page_from"),
12252
+ type: "number"
12253
+ }, field, {
12254
+ size: "small",
12255
+ onKeyDown: handleKeyDown,
12256
+ disabled: disabled
12257
+ }));
12258
+ }
12259
+ }), !!pageFromError && React__default.createElement(material.Typography, {
12260
+ fontWeight: 500,
12261
+ fontSize: "10px",
12262
+ lineHeight: "11.93px",
12263
+ mt: 1,
12264
+ color: !pageFromError ? "#97A1AF" : "#F34B4B"
12265
+ }, pageFromError))), React__default.createElement(material.Grid, {
12266
+ item: true,
12267
+ xs: 3
12268
+ }, React__default.createElement(material.FormGroup, {
12269
+ sx: {
12270
+ marginRight: 2
12271
+ }
12272
+ }, React__default.createElement(material.FormLabel, {
12273
+ htmlFor: "question_count",
12274
+ className: "form-label"
12275
+ }, t("page_to")), React__default.createElement(formik.Field, {
12276
+ name: path + ".pageTo",
12277
+ render: function render(_ref9) {
12278
+ var field = _ref9.field;
12279
+ return React__default.createElement(material.TextField, Object.assign({
12280
+ placeholder: t("page_to"),
12281
+ type: "number"
12282
+ }, field, {
12283
+ size: "small",
12284
+ onKeyDown: handleKeyDown,
12285
+ disabled: disabled
12286
+ }));
12287
+ }
12288
+ }), !!pageToError && React__default.createElement(material.Typography, {
12289
+ fontWeight: 500,
12290
+ fontSize: "10px",
12291
+ lineHeight: "11.93px",
12292
+ mt: 1,
12293
+ color: !pageToError ? "#97A1AF" : "#F34B4B"
12294
+ }, pageToError)))), React__default.createElement(material.Box, {
12295
+ sx: {
12296
+ display: "flex",
12297
+ visibility: "hidden"
12298
+ }
12299
+ }, React__default.createElement(material.Button, {
12300
+ variant: "contained",
12301
+ color: "success",
12302
+ disabled: true,
12303
+ sx: {
12304
+ whiteSpace: "nowrap"
12305
+ }
12121
12306
  }, t("category_copy"))))) : React__default.createElement(material.Typography, {
12122
12307
  fontWeight: 600,
12123
12308
  sx: {
@@ -12140,6 +12325,7 @@ var QuestionGroupBlock = function QuestionGroupBlock(_ref) {
12140
12325
  isLoadingQuestionTypes: isLoadingQuestionTypes,
12141
12326
  optionKey: optionKey,
12142
12327
  disabled: disabled,
12328
+ onQuestioStartOrderChange: handleChangeStartQuestionOrder,
12143
12329
  onDelete: onDelete,
12144
12330
  onOpenSubCategoryMenu: onOpenSubCategoryMenu,
12145
12331
  onOpenCategoryMenu: onOpenCategoryMenu,
@@ -16594,7 +16780,7 @@ var ActionsTooltip = function ActionsTooltip(_ref) {
16594
16780
  };
16595
16781
 
16596
16782
  var NoteItem = function NoteItem(_ref) {
16597
- var _user$roles;
16783
+ var _user$roles, _data$questionGroupIn;
16598
16784
  var data = _ref.data,
16599
16785
  openTooltip = _ref.openTooltip,
16600
16786
  actions = _ref.actions,
@@ -16649,7 +16835,7 @@ var NoteItem = function NoteItem(_ref) {
16649
16835
  direction: "row",
16650
16836
  alignItems: "center",
16651
16837
  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", {
16838
+ }, 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
16839
  number: (data.questionOrder || 0) + 1
16654
16840
  }) : "" + 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
16841
  className: "truncate"
@@ -19965,7 +20151,7 @@ var AnswerItem = function AnswerItem(_ref) {
19965
20151
  return React__default.createElement("div", {
19966
20152
  className: "" + printStyles["avoid-break-inside"],
19967
20153
  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" : ""
20154
+ 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
20155
  },
19970
20156
  key: data.id
19971
20157
  }, React__default.createElement("div", {
@@ -21154,9 +21340,9 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
21154
21340
  });
21155
21341
  React.useEffect(function () {
21156
21342
  if (chartRef.current) {
21157
- setIsRendered(timelyOrderQuestion.article);
21343
+ setIsRendered(timelyOrderQuestion.questionGroupIndex);
21158
21344
  }
21159
- }, [timelyOrderQuestion.article]);
21345
+ }, [timelyOrderQuestion.questionGroupIndex]);
21160
21346
  return React__default.createElement("div", {
21161
21347
  className: "" + printStyles["avoid-break-inside"]
21162
21348
  }, React__default.createElement(material.Typography, {
@@ -21166,7 +21352,7 @@ var TimeOrderChart = function TimeOrderChart(_ref) {
21166
21352
  fontWeight: 700,
21167
21353
  color: "#414E62"
21168
21354
  }
21169
- }, t("article_number"), " ", timelyOrderQuestion.article), React__default.createElement("div", {
21355
+ }, t("article_number"), " ", timelyOrderQuestion.questionGroupIndex + 1), React__default.createElement("div", {
21170
21356
  className: styles$7["compareChart"] + " " + printStyles["avoid-break-inside"]
21171
21357
  }, React__default.createElement("div", {
21172
21358
  className: "" + styles$7["prevChart"]
@@ -21213,7 +21399,7 @@ var TextbookAnswerItem = function TextbookAnswerItem(_ref) {
21213
21399
  return React__default.createElement("div", {
21214
21400
  className: "" + printStyles["avoid-break-inside"],
21215
21401
  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" : ""
21402
+ 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
21403
  },
21218
21404
  key: data.id
21219
21405
  }, React__default.createElement("div", {
@@ -32377,7 +32563,8 @@ var ExamDetailForm = function ExamDetailForm(_ref) {
32377
32563
  onQuestionCountChange: handleChangeQuestionCount,
32378
32564
  onCopiedPrevQuestionGroup: handleCopiedPrevQuestionGroup,
32379
32565
  onDelete: handleOpenConfirmDelete,
32380
- isMath: isMath
32566
+ isMath: isMath,
32567
+ isTextbook: false
32381
32568
  }, formikProps));
32382
32569
  }
32383
32570
  }))), React__default.createElement(material.Grid, {
@@ -33489,255 +33676,6 @@ var ArticleDialog = function ArticleDialog(_ref) {
33489
33676
  }, t("add")))));
33490
33677
  };
33491
33678
 
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
33679
  var TextbookActionButtons = function TextbookActionButtons(_ref) {
33742
33680
  var isReadonly = _ref.isReadonly,
33743
33681
  textbook = _ref.textbook,
@@ -35022,7 +34960,8 @@ var ChapterBlockBody = function ChapterBlockBody(_ref) {
35022
34960
  onQuestionCountChange: handleChangeQuestionCount,
35023
34961
  onCopiedPrevQuestionGroup: onCopiedPrevQuestionGroup,
35024
34962
  onDelete: onDelete,
35025
- isMath: isMath
34963
+ isMath: isMath,
34964
+ isTextbook: true
35026
34965
  }, formikProps));
35027
34966
  }
35028
34967
  })), showAddQuestionGroup && React__default.createElement(material.Box, null, React__default.createElement(material.Button, {
@@ -38483,7 +38422,6 @@ exports.ArticleDialog = ArticleDialog;
38483
38422
  exports.AttendanceFormDialog = AttendanceFormDialog;
38484
38423
  exports.BASE_URL = BASE_URL;
38485
38424
  exports.BRIEF_GRADE_OPTIONS = BRIEF_GRADE_OPTIONS;
38486
- exports.ChapterBox = _ChapterBox;
38487
38425
  exports.ChatContainer = ChatContainer;
38488
38426
  exports.ChatTypes = types;
38489
38427
  exports.ClassDetail = ClassDetail;