analytica-frontend-lib 1.0.95 → 1.0.96
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/Quiz/index.d.mts +5 -1
- package/dist/Quiz/index.d.ts +5 -1
- package/dist/Quiz/index.js +450 -178
- package/dist/Quiz/index.js.map +1 -1
- package/dist/Quiz/index.mjs +445 -170
- package/dist/Quiz/index.mjs.map +1 -1
- package/dist/Quiz/useQuizStore/index.d.mts +12 -2
- package/dist/Quiz/useQuizStore/index.d.ts +12 -2
- package/dist/Quiz/useQuizStore/index.js +115 -16
- package/dist/Quiz/useQuizStore/index.js.map +1 -1
- package/dist/Quiz/useQuizStore/index.mjs +114 -16
- package/dist/Quiz/useQuizStore/index.mjs.map +1 -1
- package/dist/Select/index.d.mts +2 -1
- package/dist/Select/index.d.ts +2 -1
- package/dist/Select/index.js +22 -18
- package/dist/Select/index.js.map +1 -1
- package/dist/Select/index.mjs +22 -18
- package/dist/Select/index.mjs.map +1 -1
- package/dist/index.css +12 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +203 -65
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +201 -65
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +12 -0
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5883,9 +5883,9 @@ import {
|
|
|
5883
5883
|
import { CaretDown, Check as Check5, WarningCircle as WarningCircle5 } from "phosphor-react";
|
|
5884
5884
|
import { Fragment as Fragment6, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5885
5885
|
var VARIANT_CLASSES4 = {
|
|
5886
|
-
outlined: "border rounded-lg focus:border-primary-950",
|
|
5887
|
-
underlined: "border-b focus:border-primary-950",
|
|
5888
|
-
rounded: "border rounded-full focus:border-primary-950"
|
|
5886
|
+
outlined: "border-2 rounded-lg focus:border-primary-950",
|
|
5887
|
+
underlined: "border-b-2 focus:border-primary-950",
|
|
5888
|
+
rounded: "border-2 rounded-full focus:border-primary-950"
|
|
5889
5889
|
};
|
|
5890
5890
|
var SIZE_CLASSES12 = {
|
|
5891
5891
|
small: "text-sm",
|
|
@@ -5970,6 +5970,7 @@ var injectStore4 = (children, store, size, selectId) => {
|
|
|
5970
5970
|
var Select = ({
|
|
5971
5971
|
children,
|
|
5972
5972
|
defaultValue = "",
|
|
5973
|
+
className,
|
|
5973
5974
|
value: propValue,
|
|
5974
5975
|
onValueChange,
|
|
5975
5976
|
size = "small",
|
|
@@ -6051,7 +6052,7 @@ var Select = ({
|
|
|
6051
6052
|
}
|
|
6052
6053
|
}, [propValue]);
|
|
6053
6054
|
const sizeClasses = SIZE_CLASSES12[size];
|
|
6054
|
-
return /* @__PURE__ */ jsxs26("div", { className: "w-
|
|
6055
|
+
return /* @__PURE__ */ jsxs26("div", { className: cn("w-auto", className), children: [
|
|
6055
6056
|
label && /* @__PURE__ */ jsx32(
|
|
6056
6057
|
"label",
|
|
6057
6058
|
{
|
|
@@ -6060,8 +6061,8 @@ var Select = ({
|
|
|
6060
6061
|
children: label
|
|
6061
6062
|
}
|
|
6062
6063
|
),
|
|
6063
|
-
/* @__PURE__ */ jsx32("div", { className: cn("relative"
|
|
6064
|
-
/* @__PURE__ */ jsxs26("div", { className: "mt-1.5 gap-1.5", children: [
|
|
6064
|
+
/* @__PURE__ */ jsx32("div", { className: cn("relative"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
|
|
6065
|
+
(helperText || errorMessage) && /* @__PURE__ */ jsxs26("div", { className: "mt-1.5 gap-1.5", children: [
|
|
6065
6066
|
helperText && /* @__PURE__ */ jsx32("p", { className: "text-sm text-text-500", children: helperText }),
|
|
6066
6067
|
errorMessage && /* @__PURE__ */ jsxs26("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
|
|
6067
6068
|
/* @__PURE__ */ jsx32(WarningCircle5, { size: 16 }),
|
|
@@ -6102,15 +6103,16 @@ var SelectTrigger = forwardRef16(
|
|
|
6102
6103
|
{
|
|
6103
6104
|
ref,
|
|
6104
6105
|
id: selectId,
|
|
6105
|
-
className:
|
|
6106
|
-
|
|
6107
|
-
|
|
6108
|
-
|
|
6109
|
-
|
|
6110
|
-
|
|
6111
|
-
|
|
6112
|
-
|
|
6113
|
-
|
|
6106
|
+
className: cn(
|
|
6107
|
+
"flex w-full items-center justify-between border-border-300",
|
|
6108
|
+
heightClasses,
|
|
6109
|
+
paddingClasses,
|
|
6110
|
+
invalid && `${variant == "underlined" ? "border-b-2" : "border-2"} border-indicator-error text-text-600`,
|
|
6111
|
+
disabled ? "cursor-not-allowed text-text-400 pointer-events-none opacity-50" : "cursor-pointer hover:bg-background-50 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground",
|
|
6112
|
+
!invalid && !disabled ? "text-text-700" : "",
|
|
6113
|
+
variantClasses,
|
|
6114
|
+
className
|
|
6115
|
+
),
|
|
6114
6116
|
onClick: toggleOpen,
|
|
6115
6117
|
"aria-expanded": open,
|
|
6116
6118
|
"aria-haspopup": "listbox",
|
|
@@ -6183,10 +6185,12 @@ var SelectItem = forwardRef16(
|
|
|
6183
6185
|
const handleClick = (e) => {
|
|
6184
6186
|
const labelNode = getLabelAsNode(children);
|
|
6185
6187
|
if (!disabled) {
|
|
6186
|
-
|
|
6187
|
-
|
|
6188
|
+
const newValue = selectedValue === value ? "" : value;
|
|
6189
|
+
const newLabel = selectedValue === value ? "" : labelNode;
|
|
6190
|
+
setValue(newValue);
|
|
6191
|
+
setSelectedLabel(newLabel);
|
|
6188
6192
|
setOpen(false);
|
|
6189
|
-
onValueChange?.(
|
|
6193
|
+
onValueChange?.(newValue);
|
|
6190
6194
|
}
|
|
6191
6195
|
props.onClick?.(e);
|
|
6192
6196
|
};
|
|
@@ -7154,6 +7158,10 @@ var useQuizStore = create7()(
|
|
|
7154
7158
|
console.warn("selectAnswer called before userId is set");
|
|
7155
7159
|
return;
|
|
7156
7160
|
}
|
|
7161
|
+
const question = activeQuiz.quiz.questions.find(
|
|
7162
|
+
(q) => q.id === questionId
|
|
7163
|
+
);
|
|
7164
|
+
if (!question) return;
|
|
7157
7165
|
const existingAnswerIndex = userAnswers.findIndex(
|
|
7158
7166
|
(answer) => answer.questionId === questionId
|
|
7159
7167
|
);
|
|
@@ -7161,8 +7169,10 @@ var useQuizStore = create7()(
|
|
|
7161
7169
|
questionId,
|
|
7162
7170
|
activityId,
|
|
7163
7171
|
userId,
|
|
7164
|
-
answer: null,
|
|
7165
|
-
optionId: answerId
|
|
7172
|
+
answer: question.type === "DISSERTATIVA" /* DISSERTATIVA */ ? answerId : null,
|
|
7173
|
+
optionId: question.type === "DISSERTATIVA" /* DISSERTATIVA */ ? null : answerId,
|
|
7174
|
+
questionType: question.type,
|
|
7175
|
+
answerStatus: "PENDENTE_AVALIACAO" /* PENDENTE_AVALIACAO */
|
|
7166
7176
|
};
|
|
7167
7177
|
let updatedUserAnswers;
|
|
7168
7178
|
if (existingAnswerIndex !== -1) {
|
|
@@ -7185,6 +7195,10 @@ var useQuizStore = create7()(
|
|
|
7185
7195
|
console.warn("selectMultipleAnswer called before userId is set");
|
|
7186
7196
|
return;
|
|
7187
7197
|
}
|
|
7198
|
+
const question = activeQuiz.quiz.questions.find(
|
|
7199
|
+
(q) => q.id === questionId
|
|
7200
|
+
);
|
|
7201
|
+
if (!question) return;
|
|
7188
7202
|
const filteredUserAnswers = userAnswers.filter(
|
|
7189
7203
|
(answer) => answer.questionId !== questionId
|
|
7190
7204
|
);
|
|
@@ -7194,7 +7208,11 @@ var useQuizStore = create7()(
|
|
|
7194
7208
|
activityId,
|
|
7195
7209
|
userId,
|
|
7196
7210
|
answer: null,
|
|
7197
|
-
|
|
7211
|
+
// selectMultipleAnswer is for non-dissertative questions
|
|
7212
|
+
optionId: answerId,
|
|
7213
|
+
// selectMultipleAnswer should only set optionId
|
|
7214
|
+
questionType: question.type,
|
|
7215
|
+
answerStatus: "PENDENTE_AVALIACAO" /* PENDENTE_AVALIACAO */
|
|
7198
7216
|
})
|
|
7199
7217
|
);
|
|
7200
7218
|
const updatedUserAnswers = [
|
|
@@ -7205,6 +7223,50 @@ var useQuizStore = create7()(
|
|
|
7205
7223
|
userAnswers: updatedUserAnswers
|
|
7206
7224
|
});
|
|
7207
7225
|
},
|
|
7226
|
+
selectDissertativeAnswer: (questionId, answer) => {
|
|
7227
|
+
const { getActiveQuiz, userAnswers } = get();
|
|
7228
|
+
const activeQuiz = getActiveQuiz();
|
|
7229
|
+
if (!activeQuiz) return;
|
|
7230
|
+
const activityId = activeQuiz.quiz.id;
|
|
7231
|
+
const userId = get().getUserId();
|
|
7232
|
+
if (!userId || userId === "") {
|
|
7233
|
+
console.warn(
|
|
7234
|
+
"selectDissertativeAnswer called before userId is set"
|
|
7235
|
+
);
|
|
7236
|
+
return;
|
|
7237
|
+
}
|
|
7238
|
+
const question = activeQuiz.quiz.questions.find(
|
|
7239
|
+
(q) => q.id === questionId
|
|
7240
|
+
);
|
|
7241
|
+
if (!question || question.type !== "DISSERTATIVA" /* DISSERTATIVA */) {
|
|
7242
|
+
console.warn(
|
|
7243
|
+
"selectDissertativeAnswer called for non-dissertative question"
|
|
7244
|
+
);
|
|
7245
|
+
return;
|
|
7246
|
+
}
|
|
7247
|
+
const existingAnswerIndex = userAnswers.findIndex(
|
|
7248
|
+
(answerItem) => answerItem.questionId === questionId
|
|
7249
|
+
);
|
|
7250
|
+
const newUserAnswer = {
|
|
7251
|
+
questionId,
|
|
7252
|
+
activityId,
|
|
7253
|
+
userId,
|
|
7254
|
+
answer,
|
|
7255
|
+
optionId: null,
|
|
7256
|
+
questionType: "DISSERTATIVA" /* DISSERTATIVA */,
|
|
7257
|
+
answerStatus: "PENDENTE_AVALIACAO" /* PENDENTE_AVALIACAO */
|
|
7258
|
+
};
|
|
7259
|
+
let updatedUserAnswers;
|
|
7260
|
+
if (existingAnswerIndex !== -1) {
|
|
7261
|
+
updatedUserAnswers = [...userAnswers];
|
|
7262
|
+
updatedUserAnswers[existingAnswerIndex] = newUserAnswer;
|
|
7263
|
+
} else {
|
|
7264
|
+
updatedUserAnswers = [...userAnswers, newUserAnswer];
|
|
7265
|
+
}
|
|
7266
|
+
set({
|
|
7267
|
+
userAnswers: updatedUserAnswers
|
|
7268
|
+
});
|
|
7269
|
+
},
|
|
7208
7270
|
skipQuestion: () => {
|
|
7209
7271
|
const { getCurrentQuestion, userAnswers, getActiveQuiz } = get();
|
|
7210
7272
|
const currentQuestion = getCurrentQuestion();
|
|
@@ -7225,7 +7287,9 @@ var useQuizStore = create7()(
|
|
|
7225
7287
|
activityId,
|
|
7226
7288
|
userId,
|
|
7227
7289
|
answer: null,
|
|
7228
|
-
optionId: null
|
|
7290
|
+
optionId: null,
|
|
7291
|
+
questionType: currentQuestion.type,
|
|
7292
|
+
answerStatus: "PENDENTE_AVALIACAO" /* PENDENTE_AVALIACAO */
|
|
7229
7293
|
};
|
|
7230
7294
|
let updatedUserAnswers;
|
|
7231
7295
|
if (existingAnswerIndex !== -1) {
|
|
@@ -7249,6 +7313,10 @@ var useQuizStore = create7()(
|
|
|
7249
7313
|
console.warn("addUserAnswer called before userId is set");
|
|
7250
7314
|
return;
|
|
7251
7315
|
}
|
|
7316
|
+
const question = activeQuiz.quiz.questions.find(
|
|
7317
|
+
(q) => q.id === questionId
|
|
7318
|
+
);
|
|
7319
|
+
if (!question) return;
|
|
7252
7320
|
const existingAnswerIndex = userAnswers.findIndex(
|
|
7253
7321
|
(answer) => answer.questionId === questionId
|
|
7254
7322
|
);
|
|
@@ -7256,8 +7324,10 @@ var useQuizStore = create7()(
|
|
|
7256
7324
|
questionId,
|
|
7257
7325
|
activityId,
|
|
7258
7326
|
userId,
|
|
7259
|
-
answer: null,
|
|
7260
|
-
optionId: answerId || null
|
|
7327
|
+
answer: question.type === "DISSERTATIVA" /* DISSERTATIVA */ ? answerId || null : null,
|
|
7328
|
+
optionId: question.type !== "DISSERTATIVA" /* DISSERTATIVA */ ? answerId || null : null,
|
|
7329
|
+
questionType: question.type,
|
|
7330
|
+
answerStatus: "PENDENTE_AVALIACAO" /* PENDENTE_AVALIACAO */
|
|
7261
7331
|
};
|
|
7262
7332
|
if (existingAnswerIndex !== -1) {
|
|
7263
7333
|
const updatedUserAnswers = [...userAnswers];
|
|
@@ -7307,7 +7377,9 @@ var useQuizStore = create7()(
|
|
|
7307
7377
|
},
|
|
7308
7378
|
getAnsweredQuestions: () => {
|
|
7309
7379
|
const { userAnswers } = get();
|
|
7310
|
-
return userAnswers.filter(
|
|
7380
|
+
return userAnswers.filter(
|
|
7381
|
+
(answer) => answer.optionId !== null || answer.answer !== null
|
|
7382
|
+
).length;
|
|
7311
7383
|
},
|
|
7312
7384
|
getUnansweredQuestions: () => {
|
|
7313
7385
|
const { getActiveQuiz, userAnswers } = get();
|
|
@@ -7318,8 +7390,8 @@ var useQuizStore = create7()(
|
|
|
7318
7390
|
const userAnswer = userAnswers.find(
|
|
7319
7391
|
(answer) => answer.questionId === question.id
|
|
7320
7392
|
);
|
|
7321
|
-
const isAnswered = userAnswer && userAnswer.optionId !== null;
|
|
7322
|
-
const isSkipped = userAnswer && userAnswer.optionId === null;
|
|
7393
|
+
const isAnswered = userAnswer && (userAnswer.optionId !== null || userAnswer.answer !== null);
|
|
7394
|
+
const isSkipped = userAnswer && userAnswer.optionId === null && userAnswer.answer === null;
|
|
7323
7395
|
if (!isAnswered && !isSkipped) {
|
|
7324
7396
|
unansweredQuestions.push(index + 1);
|
|
7325
7397
|
}
|
|
@@ -7328,7 +7400,9 @@ var useQuizStore = create7()(
|
|
|
7328
7400
|
},
|
|
7329
7401
|
getSkippedQuestions: () => {
|
|
7330
7402
|
const { userAnswers } = get();
|
|
7331
|
-
return userAnswers.filter(
|
|
7403
|
+
return userAnswers.filter(
|
|
7404
|
+
(answer) => answer.optionId === null && answer.answer === null
|
|
7405
|
+
).length;
|
|
7332
7406
|
},
|
|
7333
7407
|
getProgress: () => {
|
|
7334
7408
|
const { getTotalQuestions, getAnsweredQuestions } = get();
|
|
@@ -7341,14 +7415,14 @@ var useQuizStore = create7()(
|
|
|
7341
7415
|
const userAnswer = userAnswers.find(
|
|
7342
7416
|
(answer) => answer.questionId === questionId
|
|
7343
7417
|
);
|
|
7344
|
-
return userAnswer ? userAnswer.optionId !== null : false;
|
|
7418
|
+
return userAnswer ? userAnswer.optionId !== null || userAnswer.answer !== null : false;
|
|
7345
7419
|
},
|
|
7346
7420
|
isQuestionSkipped: (questionId) => {
|
|
7347
7421
|
const { userAnswers } = get();
|
|
7348
7422
|
const userAnswer = userAnswers.find(
|
|
7349
7423
|
(answer) => answer.questionId === questionId
|
|
7350
7424
|
);
|
|
7351
|
-
return userAnswer ? userAnswer.optionId === null : false;
|
|
7425
|
+
return userAnswer ? userAnswer.optionId === null && userAnswer.answer === null : false;
|
|
7352
7426
|
},
|
|
7353
7427
|
getCurrentAnswer: () => {
|
|
7354
7428
|
const { getCurrentQuestion, userAnswers } = get();
|
|
@@ -7357,7 +7431,7 @@ var useQuizStore = create7()(
|
|
|
7357
7431
|
const userAnswer = userAnswers.find(
|
|
7358
7432
|
(answer) => answer.questionId === currentQuestion.id
|
|
7359
7433
|
);
|
|
7360
|
-
return userAnswer
|
|
7434
|
+
return userAnswer;
|
|
7361
7435
|
},
|
|
7362
7436
|
getAllCurrentAnswer: () => {
|
|
7363
7437
|
const { getCurrentQuestion, userAnswers } = get();
|
|
@@ -7391,8 +7465,8 @@ var useQuizStore = create7()(
|
|
|
7391
7465
|
const userAnswer = userAnswers.find(
|
|
7392
7466
|
(answer) => answer.questionId === question.id
|
|
7393
7467
|
);
|
|
7394
|
-
const hasAnswer = userAnswer && userAnswer.optionId !== null;
|
|
7395
|
-
const isSkipped = userAnswer && userAnswer.optionId === null;
|
|
7468
|
+
const hasAnswer = userAnswer && (userAnswer.optionId !== null || userAnswer.answer !== null);
|
|
7469
|
+
const isSkipped = userAnswer && userAnswer.optionId === null && userAnswer.answer === null;
|
|
7396
7470
|
if (!hasAnswer || isSkipped) {
|
|
7397
7471
|
unansweredQuestions.push(index + 1);
|
|
7398
7472
|
}
|
|
@@ -7423,7 +7497,7 @@ var useQuizStore = create7()(
|
|
|
7423
7497
|
const answer = userAnswers.find(
|
|
7424
7498
|
(answer2) => answer2.questionId === questionId
|
|
7425
7499
|
);
|
|
7426
|
-
return answer ? answer.optionId !== null : false;
|
|
7500
|
+
return answer ? answer.optionId !== null || answer.answer !== null : false;
|
|
7427
7501
|
},
|
|
7428
7502
|
getQuestionStatusFromUserAnswers: (questionId) => {
|
|
7429
7503
|
const { userAnswers } = get();
|
|
@@ -7452,6 +7526,27 @@ var useQuizStore = create7()(
|
|
|
7452
7526
|
return;
|
|
7453
7527
|
}
|
|
7454
7528
|
set({ currentQuestionIndex: questionIndex });
|
|
7529
|
+
},
|
|
7530
|
+
setAnswerStatus: (questionId, status) => {
|
|
7531
|
+
const { userAnswers } = get();
|
|
7532
|
+
const existingAnswerIndex = userAnswers.findIndex(
|
|
7533
|
+
(answer) => answer.questionId === questionId
|
|
7534
|
+
);
|
|
7535
|
+
if (existingAnswerIndex !== -1) {
|
|
7536
|
+
const updatedUserAnswers = [...userAnswers];
|
|
7537
|
+
updatedUserAnswers[existingAnswerIndex] = {
|
|
7538
|
+
...updatedUserAnswers[existingAnswerIndex],
|
|
7539
|
+
answerStatus: status
|
|
7540
|
+
};
|
|
7541
|
+
set({ userAnswers: updatedUserAnswers });
|
|
7542
|
+
}
|
|
7543
|
+
},
|
|
7544
|
+
getAnswerStatus: (questionId) => {
|
|
7545
|
+
const { userAnswers } = get();
|
|
7546
|
+
const userAnswer = userAnswers.find(
|
|
7547
|
+
(answer) => answer.questionId === questionId
|
|
7548
|
+
);
|
|
7549
|
+
return userAnswer ? userAnswer.answerStatus : null;
|
|
7455
7550
|
}
|
|
7456
7551
|
};
|
|
7457
7552
|
},
|
|
@@ -7482,35 +7577,18 @@ var Quiz = forwardRef19(({ children, className, ...props }, ref) => {
|
|
|
7482
7577
|
});
|
|
7483
7578
|
var QuizHeaderResult = forwardRef19(
|
|
7484
7579
|
({ className, ...props }, ref) => {
|
|
7485
|
-
const {
|
|
7486
|
-
const
|
|
7487
|
-
const userAnswer = getCurrentAnswer();
|
|
7580
|
+
const { getAllCurrentAnswer } = useQuizStore();
|
|
7581
|
+
const usersAnswer = getAllCurrentAnswer();
|
|
7488
7582
|
const [isCorrect, setIsCorrect] = useState14(false);
|
|
7489
7583
|
useEffect13(() => {
|
|
7490
|
-
if (
|
|
7491
|
-
const allCurrentAnswers = getAllCurrentAnswer();
|
|
7492
|
-
const isCorrectOption = currentQuestion.options.filter(
|
|
7493
|
-
(op) => op.isCorrect
|
|
7494
|
-
);
|
|
7495
|
-
if (allCurrentAnswers?.length !== isCorrectOption.length) {
|
|
7496
|
-
setIsCorrect(false);
|
|
7497
|
-
return;
|
|
7498
|
-
}
|
|
7499
|
-
setIsCorrect(true);
|
|
7500
|
-
allCurrentAnswers.forEach((answer) => {
|
|
7501
|
-
const findInCorrectOptions = isCorrectOption.find(
|
|
7502
|
-
(op) => op.id === answer.optionId
|
|
7503
|
-
);
|
|
7504
|
-
if (!findInCorrectOptions) {
|
|
7505
|
-
setIsCorrect(false);
|
|
7506
|
-
}
|
|
7507
|
-
});
|
|
7508
|
-
} else {
|
|
7584
|
+
if (usersAnswer) {
|
|
7509
7585
|
setIsCorrect(
|
|
7510
|
-
|
|
7586
|
+
usersAnswer.length > 0 ? usersAnswer.map(
|
|
7587
|
+
(answer) => answer.answerStatus === "RESPOSTA_CORRETA" /* RESPOSTA_CORRETA */
|
|
7588
|
+
).every(Boolean) : false
|
|
7511
7589
|
);
|
|
7512
7590
|
}
|
|
7513
|
-
}, [
|
|
7591
|
+
}, [usersAnswer]);
|
|
7514
7592
|
return /* @__PURE__ */ jsxs30(
|
|
7515
7593
|
"div",
|
|
7516
7594
|
{
|
|
@@ -7574,8 +7652,9 @@ var QuizHeader = () => {
|
|
|
7574
7652
|
);
|
|
7575
7653
|
};
|
|
7576
7654
|
var QuizContent = forwardRef19(({ type = "Alternativas", className, variant, ...props }, ref) => {
|
|
7577
|
-
const { getCurrentQuestion } = useQuizStore();
|
|
7655
|
+
const { getCurrentQuestion, getCurrentAnswer } = useQuizStore();
|
|
7578
7656
|
const currentQuestion = getCurrentQuestion();
|
|
7657
|
+
const currentAnswer = getCurrentAnswer();
|
|
7579
7658
|
return /* @__PURE__ */ jsxs30(Fragment8, { children: [
|
|
7580
7659
|
/* @__PURE__ */ jsx37("div", { className: "px-4 pb-2 pt-6", children: /* @__PURE__ */ jsx37("p", { className: "font-bold text-lg text-text-950", children: type }) }),
|
|
7581
7660
|
/* @__PURE__ */ jsx37(
|
|
@@ -7583,17 +7662,32 @@ var QuizContent = forwardRef19(({ type = "Alternativas", className, variant, ...
|
|
|
7583
7662
|
{
|
|
7584
7663
|
ref,
|
|
7585
7664
|
className: cn(
|
|
7586
|
-
"rounded-t-xl px-4 pt-4 pb-[80px] h-full flex flex-col gap-4 mb-auto",
|
|
7665
|
+
"bg-background rounded-t-xl px-4 pt-4 pb-[80px] h-full flex flex-col gap-4 mb-auto",
|
|
7587
7666
|
className
|
|
7588
7667
|
),
|
|
7589
7668
|
...props,
|
|
7590
7669
|
children: currentQuestion && /* @__PURE__ */ jsxs30(Fragment8, { children: [
|
|
7591
7670
|
currentQuestion.type === "ALTERNATIVA" /* ALTERNATIVA */ && /* @__PURE__ */ jsx37(QuizAlternative, { variant }),
|
|
7592
7671
|
currentQuestion.type === "MULTIPLA_CHOICE" /* MULTIPLA_CHOICE */ && /* @__PURE__ */ jsx37(QuizMultipleChoice, { variant }),
|
|
7593
|
-
currentQuestion.type === "DISSERTATIVA" /* DISSERTATIVA */ && /* @__PURE__ */ jsx37(
|
|
7672
|
+
currentQuestion.type === "DISSERTATIVA" /* DISSERTATIVA */ && /* @__PURE__ */ jsx37(QuizDissertative, { variant })
|
|
7594
7673
|
] })
|
|
7595
7674
|
}
|
|
7596
|
-
)
|
|
7675
|
+
),
|
|
7676
|
+
currentQuestion?.type === "DISSERTATIVA" /* DISSERTATIVA */ && variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs30(Fragment8, { children: [
|
|
7677
|
+
/* @__PURE__ */ jsx37("div", { className: "px-4 pb-2 pt-6", children: /* @__PURE__ */ jsx37("p", { className: "font-bold text-lg text-text-950", children: "Observa\xE7\xE3o do professor" }) }),
|
|
7678
|
+
/* @__PURE__ */ jsx37(
|
|
7679
|
+
"div",
|
|
7680
|
+
{
|
|
7681
|
+
ref,
|
|
7682
|
+
className: cn(
|
|
7683
|
+
"bg-background rounded-t-xl px-4 pt-4 pb-[80px] h-full flex flex-col gap-4 mb-auto",
|
|
7684
|
+
className
|
|
7685
|
+
),
|
|
7686
|
+
...props,
|
|
7687
|
+
children: /* @__PURE__ */ jsx37("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Mauris euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim." })
|
|
7688
|
+
}
|
|
7689
|
+
)
|
|
7690
|
+
] })
|
|
7597
7691
|
] });
|
|
7598
7692
|
});
|
|
7599
7693
|
var QuizAlternative = ({ variant = "default" }) => {
|
|
@@ -7608,7 +7702,7 @@ var QuizAlternative = ({ variant = "default" }) => {
|
|
|
7608
7702
|
);
|
|
7609
7703
|
if (isCorrectOption?.id === option.id) {
|
|
7610
7704
|
status = "correct" /* CORRECT */;
|
|
7611
|
-
} else if (currentAnswer === option.id && option.id !== isCorrectOption?.id) {
|
|
7705
|
+
} else if (currentAnswer?.optionId === option.id && option.id !== isCorrectOption?.id) {
|
|
7612
7706
|
status = "incorrect" /* INCORRECT */;
|
|
7613
7707
|
}
|
|
7614
7708
|
}
|
|
@@ -7627,8 +7721,8 @@ var QuizAlternative = ({ variant = "default" }) => {
|
|
|
7627
7721
|
name: `question-${currentQuestion?.id || "1"}`,
|
|
7628
7722
|
layout: "compact",
|
|
7629
7723
|
alternatives,
|
|
7630
|
-
value: currentAnswer,
|
|
7631
|
-
selectedValue: currentAnswer,
|
|
7724
|
+
value: currentAnswer?.optionId || "",
|
|
7725
|
+
selectedValue: currentAnswer?.optionId || "",
|
|
7632
7726
|
onValueChange: (value) => {
|
|
7633
7727
|
if (currentQuestion) {
|
|
7634
7728
|
selectAnswer(currentQuestion.id, value);
|
|
@@ -7709,6 +7803,46 @@ var QuizMultipleChoice = ({
|
|
|
7709
7803
|
questionKey
|
|
7710
7804
|
) });
|
|
7711
7805
|
};
|
|
7806
|
+
var QuizDissertative = ({
|
|
7807
|
+
variant = "default"
|
|
7808
|
+
}) => {
|
|
7809
|
+
const { getCurrentQuestion, getCurrentAnswer, selectDissertativeAnswer } = useQuizStore();
|
|
7810
|
+
const currentQuestion = getCurrentQuestion();
|
|
7811
|
+
const currentAnswer = getCurrentAnswer();
|
|
7812
|
+
const textareaRef = useRef9(null);
|
|
7813
|
+
const handleAnswerChange = (value) => {
|
|
7814
|
+
if (currentQuestion) {
|
|
7815
|
+
selectDissertativeAnswer(currentQuestion.id, value);
|
|
7816
|
+
}
|
|
7817
|
+
};
|
|
7818
|
+
const adjustTextareaHeight = useCallback2(() => {
|
|
7819
|
+
if (textareaRef.current) {
|
|
7820
|
+
textareaRef.current.style.height = "auto";
|
|
7821
|
+
const scrollHeight = textareaRef.current.scrollHeight;
|
|
7822
|
+
const minHeight = 120;
|
|
7823
|
+
const maxHeight = 400;
|
|
7824
|
+
const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight);
|
|
7825
|
+
textareaRef.current.style.height = `${newHeight}px`;
|
|
7826
|
+
}
|
|
7827
|
+
}, []);
|
|
7828
|
+
useEffect13(() => {
|
|
7829
|
+
adjustTextareaHeight();
|
|
7830
|
+
}, [currentAnswer, adjustTextareaHeight]);
|
|
7831
|
+
if (!currentQuestion) {
|
|
7832
|
+
return /* @__PURE__ */ jsx37("div", { className: "space-y-4", children: /* @__PURE__ */ jsx37("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
|
|
7833
|
+
}
|
|
7834
|
+
return /* @__PURE__ */ jsx37("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx37("div", { className: "space-y-4", children: /* @__PURE__ */ jsx37(
|
|
7835
|
+
TextArea_default,
|
|
7836
|
+
{
|
|
7837
|
+
ref: textareaRef,
|
|
7838
|
+
placeholder: "Escreva sua resposta",
|
|
7839
|
+
value: currentAnswer?.answer || "",
|
|
7840
|
+
onChange: (e) => handleAnswerChange(e.target.value),
|
|
7841
|
+
rows: 4,
|
|
7842
|
+
className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
|
|
7843
|
+
}
|
|
7844
|
+
) }) : /* @__PURE__ */ jsx37("div", { className: "space-y-4", children: /* @__PURE__ */ jsx37("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentAnswer?.answer || "Nenhuma resposta fornecida" }) }) });
|
|
7845
|
+
};
|
|
7712
7846
|
var QuizQuestionList = ({
|
|
7713
7847
|
filterType = "all",
|
|
7714
7848
|
onQuestionClick
|
|
@@ -8300,11 +8434,13 @@ export {
|
|
|
8300
8434
|
Quiz,
|
|
8301
8435
|
QuizAlternative,
|
|
8302
8436
|
QuizContent,
|
|
8437
|
+
QuizDissertative,
|
|
8303
8438
|
QuizFooter,
|
|
8304
8439
|
QuizHeader,
|
|
8305
8440
|
QuizHeaderResult,
|
|
8306
8441
|
QuizListResult,
|
|
8307
8442
|
QuizListResultByMateria,
|
|
8443
|
+
QuizMultipleChoice,
|
|
8308
8444
|
QuizQuestionList,
|
|
8309
8445
|
QuizResultHeaderTitle,
|
|
8310
8446
|
QuizResultPerformance,
|