analytica-frontend-lib 1.1.6 → 1.1.8
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/Auth/AuthProvider/index.js +12 -0
- package/dist/Auth/AuthProvider/index.js.map +1 -1
- package/dist/Auth/AuthProvider/index.mjs +12 -0
- package/dist/Auth/AuthProvider/index.mjs.map +1 -1
- package/dist/Auth/ProtectedRoute/index.js +12 -0
- package/dist/Auth/ProtectedRoute/index.js.map +1 -1
- package/dist/Auth/ProtectedRoute/index.mjs +12 -0
- package/dist/Auth/ProtectedRoute/index.mjs.map +1 -1
- package/dist/Auth/PublicRoute/index.js +12 -0
- package/dist/Auth/PublicRoute/index.js.map +1 -1
- package/dist/Auth/PublicRoute/index.mjs +12 -0
- package/dist/Auth/PublicRoute/index.mjs.map +1 -1
- package/dist/Auth/getRootDomain/index.js +12 -0
- package/dist/Auth/getRootDomain/index.js.map +1 -1
- package/dist/Auth/getRootDomain/index.mjs +12 -0
- package/dist/Auth/getRootDomain/index.mjs.map +1 -1
- package/dist/Auth/index.d.mts +15 -1
- package/dist/Auth/index.d.ts +15 -1
- package/dist/Auth/index.js +12 -0
- package/dist/Auth/index.js.map +1 -1
- package/dist/Auth/index.mjs +12 -0
- package/dist/Auth/index.mjs.map +1 -1
- package/dist/Auth/useAuth/index.js +12 -0
- package/dist/Auth/useAuth/index.js.map +1 -1
- package/dist/Auth/useAuth/index.mjs +12 -0
- package/dist/Auth/useAuth/index.mjs.map +1 -1
- package/dist/Auth/useAuthGuard/index.js +12 -0
- package/dist/Auth/useAuthGuard/index.js.map +1 -1
- package/dist/Auth/useAuthGuard/index.mjs +12 -0
- package/dist/Auth/useAuthGuard/index.mjs.map +1 -1
- package/dist/Auth/useRouteAuth/index.js +12 -0
- package/dist/Auth/useRouteAuth/index.js.map +1 -1
- package/dist/Auth/useRouteAuth/index.mjs +12 -0
- package/dist/Auth/useRouteAuth/index.mjs.map +1 -1
- package/dist/Auth/withAuth/index.js +12 -0
- package/dist/Auth/withAuth/index.js.map +1 -1
- package/dist/Auth/withAuth/index.mjs +12 -0
- package/dist/Auth/withAuth/index.mjs.map +1 -1
- package/dist/Whiteboard/index.d.mts +34 -0
- package/dist/Whiteboard/index.d.ts +34 -0
- package/dist/Whiteboard/index.js +151 -0
- package/dist/Whiteboard/index.js.map +1 -0
- package/dist/Whiteboard/index.mjs +130 -0
- package/dist/Whiteboard/index.mjs.map +1 -0
- package/dist/index.css +47 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +354 -222
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +324 -193
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +47 -0
- package/dist/styles.css.map +1 -1
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -122,6 +122,7 @@ __export(src_exports, {
|
|
|
122
122
|
Toast: () => Toast_default,
|
|
123
123
|
Toaster: () => Toaster_default,
|
|
124
124
|
VideoPlayer: () => VideoPlayer_default,
|
|
125
|
+
Whiteboard: () => Whiteboard_default,
|
|
125
126
|
createZustandAuthAdapter: () => createZustandAuthAdapter,
|
|
126
127
|
getRootDomain: () => getRootDomain,
|
|
127
128
|
getStatusBadge: () => getStatusBadge,
|
|
@@ -7245,11 +7246,129 @@ var VideoPlayer = ({
|
|
|
7245
7246
|
};
|
|
7246
7247
|
var VideoPlayer_default = VideoPlayer;
|
|
7247
7248
|
|
|
7248
|
-
// src/components/
|
|
7249
|
+
// src/components/Whiteboard/Whiteboard.tsx
|
|
7249
7250
|
var import_react23 = require("react");
|
|
7250
|
-
var
|
|
7251
|
+
var import_phosphor_react19 = require("phosphor-react");
|
|
7251
7252
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
7252
|
-
var
|
|
7253
|
+
var IMAGE_WIDTH = 225;
|
|
7254
|
+
var IMAGE_HEIGHT = 90;
|
|
7255
|
+
var Whiteboard = ({
|
|
7256
|
+
images,
|
|
7257
|
+
showDownload = true,
|
|
7258
|
+
className,
|
|
7259
|
+
onDownload,
|
|
7260
|
+
imagesPerRow = 2,
|
|
7261
|
+
...rest
|
|
7262
|
+
}) => {
|
|
7263
|
+
const [imageErrors, setImageErrors] = (0, import_react23.useState)(/* @__PURE__ */ new Set());
|
|
7264
|
+
const handleDownload = (0, import_react23.useCallback)(
|
|
7265
|
+
(image) => {
|
|
7266
|
+
if (onDownload) {
|
|
7267
|
+
onDownload(image);
|
|
7268
|
+
} else {
|
|
7269
|
+
const link = document.createElement("a");
|
|
7270
|
+
link.href = image.imageUrl;
|
|
7271
|
+
link.download = image.title || `whiteboard-${image.id}`;
|
|
7272
|
+
link.target = "_blank";
|
|
7273
|
+
link.rel = "noopener noreferrer";
|
|
7274
|
+
document.body.appendChild(link);
|
|
7275
|
+
link.click();
|
|
7276
|
+
document.body.removeChild(link);
|
|
7277
|
+
}
|
|
7278
|
+
},
|
|
7279
|
+
[onDownload]
|
|
7280
|
+
);
|
|
7281
|
+
const handleImageError = (0, import_react23.useCallback)((imageId) => {
|
|
7282
|
+
setImageErrors((prev) => new Set(prev).add(imageId));
|
|
7283
|
+
}, []);
|
|
7284
|
+
const gridColsClass = images?.length === 1 ? "grid-cols-1" : {
|
|
7285
|
+
2: "grid-cols-1 sm:grid-cols-2",
|
|
7286
|
+
3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
7287
|
+
4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
|
|
7288
|
+
}[imagesPerRow];
|
|
7289
|
+
if (!images || images.length === 0) {
|
|
7290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
7291
|
+
"div",
|
|
7292
|
+
{
|
|
7293
|
+
className: cn(
|
|
7294
|
+
"flex items-center justify-center p-8 bg-white border border-gray-100 rounded-xl",
|
|
7295
|
+
className
|
|
7296
|
+
),
|
|
7297
|
+
...rest,
|
|
7298
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
|
|
7299
|
+
}
|
|
7300
|
+
);
|
|
7301
|
+
}
|
|
7302
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
7303
|
+
"div",
|
|
7304
|
+
{
|
|
7305
|
+
className: cn(
|
|
7306
|
+
"flex flex-col bg-white border border-gray-100 p-4 gap-2 rounded-xl w-fit mx-auto",
|
|
7307
|
+
className
|
|
7308
|
+
),
|
|
7309
|
+
...rest,
|
|
7310
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
7311
|
+
"div",
|
|
7312
|
+
{
|
|
7313
|
+
className: "relative group overflow-hidden bg-gray-100 rounded-lg",
|
|
7314
|
+
style: {
|
|
7315
|
+
width: `${IMAGE_WIDTH}px`
|
|
7316
|
+
},
|
|
7317
|
+
children: [
|
|
7318
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
7319
|
+
"div",
|
|
7320
|
+
{
|
|
7321
|
+
className: "relative",
|
|
7322
|
+
style: {
|
|
7323
|
+
width: `${IMAGE_WIDTH}px`,
|
|
7324
|
+
height: `${IMAGE_HEIGHT}px`
|
|
7325
|
+
},
|
|
7326
|
+
children: imageErrors.has(image.id) ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
|
|
7327
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
7328
|
+
"img",
|
|
7329
|
+
{
|
|
7330
|
+
src: image.imageUrl,
|
|
7331
|
+
alt: image.title || `Whiteboard ${image.id}`,
|
|
7332
|
+
className: "absolute inset-0 w-full h-full object-cover",
|
|
7333
|
+
loading: "lazy",
|
|
7334
|
+
onError: () => handleImageError(image.id)
|
|
7335
|
+
}
|
|
7336
|
+
),
|
|
7337
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
|
|
7338
|
+
] })
|
|
7339
|
+
}
|
|
7340
|
+
),
|
|
7341
|
+
showDownload && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
7342
|
+
"button",
|
|
7343
|
+
{
|
|
7344
|
+
type: "button",
|
|
7345
|
+
onClick: () => handleDownload(image),
|
|
7346
|
+
className: "absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
|
|
7347
|
+
"aria-label": `Download ${image.title || "imagem"}`,
|
|
7348
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
7349
|
+
import_phosphor_react19.DownloadSimple,
|
|
7350
|
+
{
|
|
7351
|
+
size: 24,
|
|
7352
|
+
weight: "regular",
|
|
7353
|
+
className: "text-white group-hover/button:scale-110 transition-transform duration-200"
|
|
7354
|
+
}
|
|
7355
|
+
)
|
|
7356
|
+
}
|
|
7357
|
+
)
|
|
7358
|
+
]
|
|
7359
|
+
},
|
|
7360
|
+
image.id
|
|
7361
|
+
)) })
|
|
7362
|
+
}
|
|
7363
|
+
);
|
|
7364
|
+
};
|
|
7365
|
+
var Whiteboard_default = Whiteboard;
|
|
7366
|
+
|
|
7367
|
+
// src/components/Auth/Auth.tsx
|
|
7368
|
+
var import_react24 = require("react");
|
|
7369
|
+
var import_react_router_dom = require("react-router-dom");
|
|
7370
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
7371
|
+
var AuthContext = (0, import_react24.createContext)(void 0);
|
|
7253
7372
|
var AuthProvider = ({
|
|
7254
7373
|
children,
|
|
7255
7374
|
checkAuthFn,
|
|
@@ -7259,12 +7378,12 @@ var AuthProvider = ({
|
|
|
7259
7378
|
getSessionFn,
|
|
7260
7379
|
getTokensFn
|
|
7261
7380
|
}) => {
|
|
7262
|
-
const [authState, setAuthState] = (0,
|
|
7381
|
+
const [authState, setAuthState] = (0, import_react24.useState)({
|
|
7263
7382
|
isAuthenticated: false,
|
|
7264
7383
|
isLoading: true,
|
|
7265
7384
|
...initialAuthState
|
|
7266
7385
|
});
|
|
7267
|
-
const checkAuth = (0,
|
|
7386
|
+
const checkAuth = (0, import_react24.useCallback)(async () => {
|
|
7268
7387
|
try {
|
|
7269
7388
|
setAuthState((prev) => ({ ...prev, isLoading: true }));
|
|
7270
7389
|
if (!checkAuthFn) {
|
|
@@ -7295,7 +7414,7 @@ var AuthProvider = ({
|
|
|
7295
7414
|
return false;
|
|
7296
7415
|
}
|
|
7297
7416
|
}, [checkAuthFn, getUserFn, getSessionFn, getTokensFn]);
|
|
7298
|
-
const signOut = (0,
|
|
7417
|
+
const signOut = (0, import_react24.useCallback)(() => {
|
|
7299
7418
|
if (signOutFn) {
|
|
7300
7419
|
signOutFn();
|
|
7301
7420
|
}
|
|
@@ -7307,10 +7426,10 @@ var AuthProvider = ({
|
|
|
7307
7426
|
tokens: void 0
|
|
7308
7427
|
}));
|
|
7309
7428
|
}, [signOutFn]);
|
|
7310
|
-
(0,
|
|
7429
|
+
(0, import_react24.useEffect)(() => {
|
|
7311
7430
|
checkAuth();
|
|
7312
7431
|
}, [checkAuth]);
|
|
7313
|
-
const contextValue = (0,
|
|
7432
|
+
const contextValue = (0, import_react24.useMemo)(
|
|
7314
7433
|
() => ({
|
|
7315
7434
|
...authState,
|
|
7316
7435
|
checkAuth,
|
|
@@ -7318,10 +7437,10 @@ var AuthProvider = ({
|
|
|
7318
7437
|
}),
|
|
7319
7438
|
[authState, checkAuth, signOut]
|
|
7320
7439
|
);
|
|
7321
|
-
return /* @__PURE__ */ (0,
|
|
7440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(AuthContext.Provider, { value: contextValue, children });
|
|
7322
7441
|
};
|
|
7323
7442
|
var useAuth = () => {
|
|
7324
|
-
const context = (0,
|
|
7443
|
+
const context = (0, import_react24.useContext)(AuthContext);
|
|
7325
7444
|
if (context === void 0) {
|
|
7326
7445
|
throw new Error("useAuth deve ser usado dentro de um AuthProvider");
|
|
7327
7446
|
}
|
|
@@ -7334,9 +7453,9 @@ var ProtectedRoute = ({
|
|
|
7334
7453
|
additionalCheck
|
|
7335
7454
|
}) => {
|
|
7336
7455
|
const { isAuthenticated, isLoading, ...authState } = useAuth();
|
|
7337
|
-
const defaultLoadingComponent = /* @__PURE__ */ (0,
|
|
7456
|
+
const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
7338
7457
|
if (isLoading) {
|
|
7339
|
-
return /* @__PURE__ */ (0,
|
|
7458
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: loadingComponent || defaultLoadingComponent });
|
|
7340
7459
|
}
|
|
7341
7460
|
if (!isAuthenticated) {
|
|
7342
7461
|
if (typeof window !== "undefined") {
|
|
@@ -7347,12 +7466,12 @@ var ProtectedRoute = ({
|
|
|
7347
7466
|
return null;
|
|
7348
7467
|
}
|
|
7349
7468
|
}
|
|
7350
|
-
return /* @__PURE__ */ (0,
|
|
7469
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
|
|
7351
7470
|
}
|
|
7352
7471
|
if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
|
|
7353
|
-
return /* @__PURE__ */ (0,
|
|
7472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
|
|
7354
7473
|
}
|
|
7355
|
-
return /* @__PURE__ */ (0,
|
|
7474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children });
|
|
7356
7475
|
};
|
|
7357
7476
|
var PublicRoute = ({
|
|
7358
7477
|
children,
|
|
@@ -7362,15 +7481,15 @@ var PublicRoute = ({
|
|
|
7362
7481
|
}) => {
|
|
7363
7482
|
const { isAuthenticated, isLoading } = useAuth();
|
|
7364
7483
|
if (checkAuthBeforeRender && isLoading) {
|
|
7365
|
-
return /* @__PURE__ */ (0,
|
|
7484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
7366
7485
|
}
|
|
7367
7486
|
if (isAuthenticated && redirectIfAuthenticated) {
|
|
7368
|
-
return /* @__PURE__ */ (0,
|
|
7487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
|
|
7369
7488
|
}
|
|
7370
|
-
return /* @__PURE__ */ (0,
|
|
7489
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children });
|
|
7371
7490
|
};
|
|
7372
7491
|
var withAuth = (Component, options = {}) => {
|
|
7373
|
-
return (props) => /* @__PURE__ */ (0,
|
|
7492
|
+
return (props) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Component, { ...props }) });
|
|
7374
7493
|
};
|
|
7375
7494
|
var useAuthGuard = (options = {}) => {
|
|
7376
7495
|
const authState = useAuth();
|
|
@@ -7385,7 +7504,7 @@ var useAuthGuard = (options = {}) => {
|
|
|
7385
7504
|
var useRouteAuth = (fallbackPath = "/") => {
|
|
7386
7505
|
const { isAuthenticated, isLoading } = useAuth();
|
|
7387
7506
|
const location = (0, import_react_router_dom.useLocation)();
|
|
7388
|
-
const redirectToLogin = () => /* @__PURE__ */ (0,
|
|
7507
|
+
const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
|
|
7389
7508
|
return {
|
|
7390
7509
|
isAuthenticated,
|
|
7391
7510
|
isLoading,
|
|
@@ -7398,7 +7517,19 @@ var getRootDomain = () => {
|
|
|
7398
7517
|
if (hostname === "localhost") {
|
|
7399
7518
|
return `${protocol}//${hostname}${portStr}`;
|
|
7400
7519
|
}
|
|
7520
|
+
const isIPv4 = /^\d{1,3}(?:\.\d{1,3}){3}$/.test(hostname);
|
|
7521
|
+
const isIPv6 = hostname.includes(":");
|
|
7522
|
+
if (isIPv4 || isIPv6) {
|
|
7523
|
+
return `${protocol}//${hostname}${portStr}`;
|
|
7524
|
+
}
|
|
7401
7525
|
const parts = hostname.split(".");
|
|
7526
|
+
if (parts.length >= 3 && parts[parts.length - 2] === "com" && parts[parts.length - 1] === "br") {
|
|
7527
|
+
if (parts.length === 3) {
|
|
7528
|
+
return `${protocol}//${hostname}${portStr}`;
|
|
7529
|
+
}
|
|
7530
|
+
const base = parts.slice(-3).join(".");
|
|
7531
|
+
return `${protocol}//${base}${portStr}`;
|
|
7532
|
+
}
|
|
7402
7533
|
if (parts.length > 2) {
|
|
7403
7534
|
const base = parts.slice(-2).join(".");
|
|
7404
7535
|
return `${protocol}//${base}${portStr}`;
|
|
@@ -7449,7 +7580,7 @@ function createZustandAuthAdapter(useAuthStore) {
|
|
|
7449
7580
|
}
|
|
7450
7581
|
|
|
7451
7582
|
// src/components/Auth/useUrlAuthentication.ts
|
|
7452
|
-
var
|
|
7583
|
+
var import_react25 = require("react");
|
|
7453
7584
|
var import_react_router_dom2 = require("react-router-dom");
|
|
7454
7585
|
var getAuthParams = (location, extractParams) => {
|
|
7455
7586
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -7497,7 +7628,7 @@ var handleUserData = (responseData, setUser) => {
|
|
|
7497
7628
|
};
|
|
7498
7629
|
function useUrlAuthentication(options) {
|
|
7499
7630
|
const location = (0, import_react_router_dom2.useLocation)();
|
|
7500
|
-
(0,
|
|
7631
|
+
(0, import_react25.useEffect)(() => {
|
|
7501
7632
|
const handleAuthentication = async () => {
|
|
7502
7633
|
const authParams = getAuthParams(location, options.extractParams);
|
|
7503
7634
|
if (!hasValidAuthParams(authParams)) {
|
|
@@ -7536,9 +7667,9 @@ function useUrlAuthentication(options) {
|
|
|
7536
7667
|
}
|
|
7537
7668
|
|
|
7538
7669
|
// src/components/Auth/useApiConfig.ts
|
|
7539
|
-
var
|
|
7670
|
+
var import_react26 = require("react");
|
|
7540
7671
|
function useApiConfig(api) {
|
|
7541
|
-
return (0,
|
|
7672
|
+
return (0, import_react26.useMemo)(
|
|
7542
7673
|
() => ({
|
|
7543
7674
|
get: (endpoint, config) => api.get(endpoint, config)
|
|
7544
7675
|
}),
|
|
@@ -7547,8 +7678,8 @@ function useApiConfig(api) {
|
|
|
7547
7678
|
}
|
|
7548
7679
|
|
|
7549
7680
|
// src/components/Quiz/Quiz.tsx
|
|
7550
|
-
var
|
|
7551
|
-
var
|
|
7681
|
+
var import_phosphor_react20 = require("phosphor-react");
|
|
7682
|
+
var import_react27 = require("react");
|
|
7552
7683
|
|
|
7553
7684
|
// src/components/Quiz/useQuizStore.ts
|
|
7554
7685
|
var import_zustand7 = require("zustand");
|
|
@@ -8048,13 +8179,13 @@ var simulated_result_default = "./simulated-result-QN5HCUY5.png";
|
|
|
8048
8179
|
var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
|
|
8049
8180
|
|
|
8050
8181
|
// src/components/Quiz/Quiz.tsx
|
|
8051
|
-
var
|
|
8182
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
8052
8183
|
var getStatusBadge = (status) => {
|
|
8053
8184
|
switch (status) {
|
|
8054
8185
|
case "correct":
|
|
8055
|
-
return /* @__PURE__ */ (0,
|
|
8186
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CheckCircle, {}), children: "Resposta correta" });
|
|
8056
8187
|
case "incorrect":
|
|
8057
|
-
return /* @__PURE__ */ (0,
|
|
8188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.XCircle, {}), children: "Resposta incorreta" });
|
|
8058
8189
|
default:
|
|
8059
8190
|
return null;
|
|
8060
8191
|
}
|
|
@@ -8067,12 +8198,12 @@ var getStatusStyles = (variantCorrect) => {
|
|
|
8067
8198
|
return "bg-error-background border-error-300";
|
|
8068
8199
|
}
|
|
8069
8200
|
};
|
|
8070
|
-
var Quiz = (0,
|
|
8201
|
+
var Quiz = (0, import_react27.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
|
|
8071
8202
|
const { setVariant } = useQuizStore();
|
|
8072
|
-
(0,
|
|
8203
|
+
(0, import_react27.useEffect)(() => {
|
|
8073
8204
|
setVariant(variant);
|
|
8074
8205
|
}, [variant, setVariant]);
|
|
8075
|
-
return /* @__PURE__ */ (0,
|
|
8206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8076
8207
|
"div",
|
|
8077
8208
|
{
|
|
8078
8209
|
ref,
|
|
@@ -8085,12 +8216,12 @@ var Quiz = (0, import_react26.forwardRef)(({ children, className, variant = "def
|
|
|
8085
8216
|
}
|
|
8086
8217
|
);
|
|
8087
8218
|
});
|
|
8088
|
-
var QuizHeaderResult = (0,
|
|
8219
|
+
var QuizHeaderResult = (0, import_react27.forwardRef)(
|
|
8089
8220
|
({ className, ...props }, ref) => {
|
|
8090
8221
|
const { getAllCurrentAnswer } = useQuizStore();
|
|
8091
8222
|
const usersAnswer = getAllCurrentAnswer();
|
|
8092
|
-
const [isCorrect, setIsCorrect] = (0,
|
|
8093
|
-
(0,
|
|
8223
|
+
const [isCorrect, setIsCorrect] = (0, import_react27.useState)(false);
|
|
8224
|
+
(0, import_react27.useEffect)(() => {
|
|
8094
8225
|
if (usersAnswer) {
|
|
8095
8226
|
setIsCorrect(
|
|
8096
8227
|
usersAnswer.length > 0 ? usersAnswer.map(
|
|
@@ -8099,7 +8230,7 @@ var QuizHeaderResult = (0, import_react26.forwardRef)(
|
|
|
8099
8230
|
);
|
|
8100
8231
|
}
|
|
8101
8232
|
}, [usersAnswer]);
|
|
8102
|
-
return /* @__PURE__ */ (0,
|
|
8233
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8103
8234
|
"div",
|
|
8104
8235
|
{
|
|
8105
8236
|
ref,
|
|
@@ -8110,14 +8241,14 @@ var QuizHeaderResult = (0, import_react26.forwardRef)(
|
|
|
8110
8241
|
),
|
|
8111
8242
|
...props,
|
|
8112
8243
|
children: [
|
|
8113
|
-
/* @__PURE__ */ (0,
|
|
8114
|
-
/* @__PURE__ */ (0,
|
|
8244
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
|
|
8245
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
|
|
8115
8246
|
]
|
|
8116
8247
|
}
|
|
8117
8248
|
);
|
|
8118
8249
|
}
|
|
8119
8250
|
);
|
|
8120
|
-
var QuizTitle = (0,
|
|
8251
|
+
var QuizTitle = (0, import_react27.forwardRef)(
|
|
8121
8252
|
({ className, ...props }, ref) => {
|
|
8122
8253
|
const {
|
|
8123
8254
|
currentQuestionIndex,
|
|
@@ -8129,7 +8260,7 @@ var QuizTitle = (0, import_react26.forwardRef)(
|
|
|
8129
8260
|
} = useQuizStore();
|
|
8130
8261
|
const totalQuestions = getTotalQuestions();
|
|
8131
8262
|
const quizTitle = getQuizTitle();
|
|
8132
|
-
return /* @__PURE__ */ (0,
|
|
8263
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8133
8264
|
"div",
|
|
8134
8265
|
{
|
|
8135
8266
|
ref,
|
|
@@ -8139,25 +8270,25 @@ var QuizTitle = (0, import_react26.forwardRef)(
|
|
|
8139
8270
|
),
|
|
8140
8271
|
...props,
|
|
8141
8272
|
children: [
|
|
8142
|
-
/* @__PURE__ */ (0,
|
|
8143
|
-
/* @__PURE__ */ (0,
|
|
8144
|
-
/* @__PURE__ */ (0,
|
|
8273
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
|
|
8274
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
|
|
8275
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
|
|
8145
8276
|
] }),
|
|
8146
|
-
/* @__PURE__ */ (0,
|
|
8277
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "absolute right-2", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
|
|
8147
8278
|
]
|
|
8148
8279
|
}
|
|
8149
8280
|
);
|
|
8150
8281
|
}
|
|
8151
8282
|
);
|
|
8152
|
-
var QuizSubTitle = (0,
|
|
8283
|
+
var QuizSubTitle = (0, import_react27.forwardRef)(
|
|
8153
8284
|
({ subTitle, ...props }, ref) => {
|
|
8154
|
-
return /* @__PURE__ */ (0,
|
|
8285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
|
|
8155
8286
|
}
|
|
8156
8287
|
);
|
|
8157
8288
|
var QuizHeader = () => {
|
|
8158
8289
|
const { getCurrentQuestion, currentQuestionIndex } = useQuizStore();
|
|
8159
8290
|
const currentQuestion = getCurrentQuestion();
|
|
8160
|
-
return /* @__PURE__ */ (0,
|
|
8291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8161
8292
|
HeaderAlternative,
|
|
8162
8293
|
{
|
|
8163
8294
|
title: currentQuestion ? `Quest\xE3o ${currentQuestionIndex + 1}` : "Quest\xE3o",
|
|
@@ -8166,8 +8297,8 @@ var QuizHeader = () => {
|
|
|
8166
8297
|
}
|
|
8167
8298
|
);
|
|
8168
8299
|
};
|
|
8169
|
-
var QuizContainer = (0,
|
|
8170
|
-
return /* @__PURE__ */ (0,
|
|
8300
|
+
var QuizContainer = (0, import_react27.forwardRef)(({ children, className, ...props }, ref) => {
|
|
8301
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8171
8302
|
"div",
|
|
8172
8303
|
{
|
|
8173
8304
|
ref,
|
|
@@ -8180,7 +8311,7 @@ var QuizContainer = (0, import_react26.forwardRef)(({ children, className, ...pr
|
|
|
8180
8311
|
}
|
|
8181
8312
|
);
|
|
8182
8313
|
});
|
|
8183
|
-
var QuizContent = (0,
|
|
8314
|
+
var QuizContent = (0, import_react27.forwardRef)(({ paddingBottom }) => {
|
|
8184
8315
|
const { getCurrentQuestion, variant } = useQuizStore();
|
|
8185
8316
|
const currentQuestion = getCurrentQuestion();
|
|
8186
8317
|
const questionComponents = {
|
|
@@ -8193,7 +8324,7 @@ var QuizContent = (0, import_react26.forwardRef)(({ paddingBottom }) => {
|
|
|
8193
8324
|
["IMAGEM" /* IMAGEM */]: QuizImageQuestion
|
|
8194
8325
|
};
|
|
8195
8326
|
const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.type] : null;
|
|
8196
|
-
return QuestionComponent ? /* @__PURE__ */ (0,
|
|
8327
|
+
return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuestionComponent, { variant, paddingBottom }) : null;
|
|
8197
8328
|
});
|
|
8198
8329
|
var QuizAlternative = ({
|
|
8199
8330
|
variant = "default",
|
|
@@ -8221,10 +8352,10 @@ var QuizAlternative = ({
|
|
|
8221
8352
|
};
|
|
8222
8353
|
});
|
|
8223
8354
|
if (!alternatives)
|
|
8224
|
-
return /* @__PURE__ */ (0,
|
|
8225
|
-
return /* @__PURE__ */ (0,
|
|
8226
|
-
/* @__PURE__ */ (0,
|
|
8227
|
-
/* @__PURE__ */ (0,
|
|
8355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
|
|
8356
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8357
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8358
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8228
8359
|
AlternativesList,
|
|
8229
8360
|
{
|
|
8230
8361
|
mode: variant === "default" ? "interactive" : "readonly",
|
|
@@ -8250,15 +8381,15 @@ var QuizMultipleChoice = ({
|
|
|
8250
8381
|
const { getCurrentQuestion, selectMultipleAnswer, getAllCurrentAnswer } = useQuizStore();
|
|
8251
8382
|
const currentQuestion = getCurrentQuestion();
|
|
8252
8383
|
const allCurrentAnswers = getAllCurrentAnswer();
|
|
8253
|
-
const prevSelectedValuesRef = (0,
|
|
8254
|
-
const prevQuestionIdRef = (0,
|
|
8255
|
-
const allCurrentAnswerIds = (0,
|
|
8384
|
+
const prevSelectedValuesRef = (0, import_react27.useRef)([]);
|
|
8385
|
+
const prevQuestionIdRef = (0, import_react27.useRef)("");
|
|
8386
|
+
const allCurrentAnswerIds = (0, import_react27.useMemo)(() => {
|
|
8256
8387
|
return allCurrentAnswers?.map((answer) => answer.optionId) || [];
|
|
8257
8388
|
}, [allCurrentAnswers]);
|
|
8258
|
-
const selectedValues = (0,
|
|
8389
|
+
const selectedValues = (0, import_react27.useMemo)(() => {
|
|
8259
8390
|
return allCurrentAnswerIds?.filter((id) => id !== null) || [];
|
|
8260
8391
|
}, [allCurrentAnswerIds]);
|
|
8261
|
-
const stableSelectedValues = (0,
|
|
8392
|
+
const stableSelectedValues = (0, import_react27.useMemo)(() => {
|
|
8262
8393
|
const currentQuestionId = currentQuestion?.id || "";
|
|
8263
8394
|
const hasQuestionChanged = prevQuestionIdRef.current !== currentQuestionId;
|
|
8264
8395
|
if (hasQuestionChanged) {
|
|
@@ -8273,7 +8404,7 @@ var QuizMultipleChoice = ({
|
|
|
8273
8404
|
}
|
|
8274
8405
|
return prevSelectedValuesRef.current;
|
|
8275
8406
|
}, [selectedValues, currentQuestion?.id]);
|
|
8276
|
-
const handleSelectedValues = (0,
|
|
8407
|
+
const handleSelectedValues = (0, import_react27.useCallback)(
|
|
8277
8408
|
(values) => {
|
|
8278
8409
|
if (currentQuestion) {
|
|
8279
8410
|
selectMultipleAnswer(currentQuestion.id, values);
|
|
@@ -8281,7 +8412,7 @@ var QuizMultipleChoice = ({
|
|
|
8281
8412
|
},
|
|
8282
8413
|
[currentQuestion, selectMultipleAnswer]
|
|
8283
8414
|
);
|
|
8284
|
-
const questionKey = (0,
|
|
8415
|
+
const questionKey = (0, import_react27.useMemo)(
|
|
8285
8416
|
() => `question-${currentQuestion?.id || "1"}`,
|
|
8286
8417
|
[currentQuestion?.id]
|
|
8287
8418
|
);
|
|
@@ -8302,10 +8433,10 @@ var QuizMultipleChoice = ({
|
|
|
8302
8433
|
};
|
|
8303
8434
|
});
|
|
8304
8435
|
if (!choices)
|
|
8305
|
-
return /* @__PURE__ */ (0,
|
|
8306
|
-
return /* @__PURE__ */ (0,
|
|
8307
|
-
/* @__PURE__ */ (0,
|
|
8308
|
-
/* @__PURE__ */ (0,
|
|
8436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
|
|
8437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8438
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8439
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8309
8440
|
MultipleChoiceList,
|
|
8310
8441
|
{
|
|
8311
8442
|
choices,
|
|
@@ -8325,13 +8456,13 @@ var QuizDissertative = ({
|
|
|
8325
8456
|
const { getCurrentQuestion, getCurrentAnswer, selectDissertativeAnswer } = useQuizStore();
|
|
8326
8457
|
const currentQuestion = getCurrentQuestion();
|
|
8327
8458
|
const currentAnswer = getCurrentAnswer();
|
|
8328
|
-
const textareaRef = (0,
|
|
8459
|
+
const textareaRef = (0, import_react27.useRef)(null);
|
|
8329
8460
|
const handleAnswerChange = (value) => {
|
|
8330
8461
|
if (currentQuestion) {
|
|
8331
8462
|
selectDissertativeAnswer(currentQuestion.id, value);
|
|
8332
8463
|
}
|
|
8333
8464
|
};
|
|
8334
|
-
const adjustTextareaHeight = (0,
|
|
8465
|
+
const adjustTextareaHeight = (0, import_react27.useCallback)(() => {
|
|
8335
8466
|
if (textareaRef.current) {
|
|
8336
8467
|
textareaRef.current.style.height = "auto";
|
|
8337
8468
|
const scrollHeight = textareaRef.current.scrollHeight;
|
|
@@ -8341,15 +8472,15 @@ var QuizDissertative = ({
|
|
|
8341
8472
|
textareaRef.current.style.height = `${newHeight}px`;
|
|
8342
8473
|
}
|
|
8343
8474
|
}, []);
|
|
8344
|
-
(0,
|
|
8475
|
+
(0, import_react27.useEffect)(() => {
|
|
8345
8476
|
adjustTextareaHeight();
|
|
8346
8477
|
}, [currentAnswer, adjustTextareaHeight]);
|
|
8347
8478
|
if (!currentQuestion) {
|
|
8348
|
-
return /* @__PURE__ */ (0,
|
|
8479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
|
|
8349
8480
|
}
|
|
8350
|
-
return /* @__PURE__ */ (0,
|
|
8351
|
-
/* @__PURE__ */ (0,
|
|
8352
|
-
/* @__PURE__ */ (0,
|
|
8481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8482
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
|
|
8483
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8353
8484
|
TextArea_default,
|
|
8354
8485
|
{
|
|
8355
8486
|
ref: textareaRef,
|
|
@@ -8359,10 +8490,10 @@ var QuizDissertative = ({
|
|
|
8359
8490
|
rows: 4,
|
|
8360
8491
|
className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
|
|
8361
8492
|
}
|
|
8362
|
-
) }) : /* @__PURE__ */ (0,
|
|
8363
|
-
variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0,
|
|
8364
|
-
/* @__PURE__ */ (0,
|
|
8365
|
-
/* @__PURE__ */ (0,
|
|
8493
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentAnswer?.answer || "Nenhuma resposta fornecida" }) }) }) }),
|
|
8494
|
+
variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8495
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
|
|
8496
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("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." }) })
|
|
8366
8497
|
] })
|
|
8367
8498
|
] });
|
|
8368
8499
|
};
|
|
@@ -8390,16 +8521,16 @@ var QuizTrueOrFalse = ({
|
|
|
8390
8521
|
];
|
|
8391
8522
|
const getLetterByIndex = (index) => String.fromCharCode(97 + index);
|
|
8392
8523
|
const isDefaultVariant = variant == "default";
|
|
8393
|
-
return /* @__PURE__ */ (0,
|
|
8394
|
-
/* @__PURE__ */ (0,
|
|
8395
|
-
/* @__PURE__ */ (0,
|
|
8524
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8525
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8526
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
8396
8527
|
const variantCorrect = option.isCorrect ? "correct" : "incorrect";
|
|
8397
|
-
return /* @__PURE__ */ (0,
|
|
8528
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8398
8529
|
"section",
|
|
8399
8530
|
{
|
|
8400
8531
|
className: "flex flex-col gap-2",
|
|
8401
8532
|
children: [
|
|
8402
|
-
/* @__PURE__ */ (0,
|
|
8533
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8403
8534
|
"div",
|
|
8404
8535
|
{
|
|
8405
8536
|
className: cn(
|
|
@@ -8407,20 +8538,20 @@ var QuizTrueOrFalse = ({
|
|
|
8407
8538
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
8408
8539
|
),
|
|
8409
8540
|
children: [
|
|
8410
|
-
/* @__PURE__ */ (0,
|
|
8411
|
-
isDefaultVariant ? /* @__PURE__ */ (0,
|
|
8412
|
-
/* @__PURE__ */ (0,
|
|
8413
|
-
/* @__PURE__ */ (0,
|
|
8414
|
-
/* @__PURE__ */ (0,
|
|
8415
|
-
/* @__PURE__ */ (0,
|
|
8541
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
|
|
8542
|
+
isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Select_default, { size: "medium", children: [
|
|
8543
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
|
|
8544
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(SelectContent, { children: [
|
|
8545
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
|
|
8546
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "F", children: "Falso" })
|
|
8416
8547
|
] })
|
|
8417
|
-
] }) : /* @__PURE__ */ (0,
|
|
8548
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
|
|
8418
8549
|
]
|
|
8419
8550
|
}
|
|
8420
8551
|
),
|
|
8421
|
-
!isDefaultVariant && /* @__PURE__ */ (0,
|
|
8422
|
-
/* @__PURE__ */ (0,
|
|
8423
|
-
!option.isCorrect && /* @__PURE__ */ (0,
|
|
8552
|
+
!isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
8553
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
|
|
8554
|
+
!option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
|
|
8424
8555
|
] })
|
|
8425
8556
|
]
|
|
8426
8557
|
},
|
|
@@ -8483,7 +8614,7 @@ var QuizConnectDots = ({
|
|
|
8483
8614
|
isCorrect: false
|
|
8484
8615
|
}
|
|
8485
8616
|
];
|
|
8486
|
-
const [userAnswers, setUserAnswers] = (0,
|
|
8617
|
+
const [userAnswers, setUserAnswers] = (0, import_react27.useState)(() => {
|
|
8487
8618
|
if (variant === "result") {
|
|
8488
8619
|
return mockUserAnswers;
|
|
8489
8620
|
}
|
|
@@ -8512,13 +8643,13 @@ var QuizConnectDots = ({
|
|
|
8512
8643
|
const assignedDots = new Set(
|
|
8513
8644
|
userAnswers.map((a) => a.dotOption).filter(Boolean)
|
|
8514
8645
|
);
|
|
8515
|
-
return /* @__PURE__ */ (0,
|
|
8516
|
-
/* @__PURE__ */ (0,
|
|
8517
|
-
/* @__PURE__ */ (0,
|
|
8646
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8647
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8648
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
8518
8649
|
const answer = userAnswers[index];
|
|
8519
8650
|
const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
|
|
8520
|
-
return /* @__PURE__ */ (0,
|
|
8521
|
-
/* @__PURE__ */ (0,
|
|
8651
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { className: "flex flex-col gap-2", children: [
|
|
8652
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8522
8653
|
"div",
|
|
8523
8654
|
{
|
|
8524
8655
|
className: cn(
|
|
@@ -8526,30 +8657,30 @@ var QuizConnectDots = ({
|
|
|
8526
8657
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
8527
8658
|
),
|
|
8528
8659
|
children: [
|
|
8529
|
-
/* @__PURE__ */ (0,
|
|
8530
|
-
isDefaultVariant ? /* @__PURE__ */ (0,
|
|
8660
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
|
|
8661
|
+
isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8531
8662
|
Select_default,
|
|
8532
8663
|
{
|
|
8533
8664
|
size: "medium",
|
|
8534
8665
|
value: answer.dotOption || void 0,
|
|
8535
8666
|
onValueChange: (value) => handleSelectDot(index, value),
|
|
8536
8667
|
children: [
|
|
8537
|
-
/* @__PURE__ */ (0,
|
|
8538
|
-
/* @__PURE__ */ (0,
|
|
8668
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
8669
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectContent, { children: dotsOptions.filter(
|
|
8539
8670
|
(dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
|
|
8540
|
-
).map((dot) => /* @__PURE__ */ (0,
|
|
8671
|
+
).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
|
|
8541
8672
|
]
|
|
8542
8673
|
}
|
|
8543
|
-
) : /* @__PURE__ */ (0,
|
|
8674
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
|
|
8544
8675
|
]
|
|
8545
8676
|
}
|
|
8546
8677
|
),
|
|
8547
|
-
!isDefaultVariant && /* @__PURE__ */ (0,
|
|
8548
|
-
/* @__PURE__ */ (0,
|
|
8678
|
+
!isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
8679
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "text-text-800 text-2xs", children: [
|
|
8549
8680
|
"Resposta selecionada: ",
|
|
8550
8681
|
answer.dotOption || "Nenhuma"
|
|
8551
8682
|
] }),
|
|
8552
|
-
!answer.isCorrect && /* @__PURE__ */ (0,
|
|
8683
|
+
!answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "text-text-800 text-2xs", children: [
|
|
8553
8684
|
"Resposta correta: ",
|
|
8554
8685
|
answer.correctOption
|
|
8555
8686
|
] })
|
|
@@ -8604,8 +8735,8 @@ var QuizFill = ({
|
|
|
8604
8735
|
isCorrect: true
|
|
8605
8736
|
}
|
|
8606
8737
|
];
|
|
8607
|
-
const [answers, setAnswers] = (0,
|
|
8608
|
-
const baseId = (0,
|
|
8738
|
+
const [answers, setAnswers] = (0, import_react27.useState)({});
|
|
8739
|
+
const baseId = (0, import_react27.useId)();
|
|
8609
8740
|
const getAvailableOptionsForSelect = (selectId) => {
|
|
8610
8741
|
const usedOptions = Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value);
|
|
8611
8742
|
return options.filter((option) => !usedOptions.includes(option));
|
|
@@ -8618,18 +8749,18 @@ var QuizFill = ({
|
|
|
8618
8749
|
const mockAnswer = mockUserAnswers.find(
|
|
8619
8750
|
(answer) => answer.selectId === selectId
|
|
8620
8751
|
);
|
|
8621
|
-
return /* @__PURE__ */ (0,
|
|
8752
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
|
|
8622
8753
|
};
|
|
8623
8754
|
const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
|
|
8624
|
-
return /* @__PURE__ */ (0,
|
|
8755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8625
8756
|
Select_default,
|
|
8626
8757
|
{
|
|
8627
8758
|
value: selectedValue,
|
|
8628
8759
|
onValueChange: (value) => handleSelectChange(selectId, value),
|
|
8629
8760
|
className: "inline-flex mb-2.5",
|
|
8630
8761
|
children: [
|
|
8631
|
-
/* @__PURE__ */ (0,
|
|
8632
|
-
/* @__PURE__ */ (0,
|
|
8762
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
8763
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
|
|
8633
8764
|
]
|
|
8634
8765
|
},
|
|
8635
8766
|
`${selectId}-${startIndex}`
|
|
@@ -8641,8 +8772,8 @@ var QuizFill = ({
|
|
|
8641
8772
|
);
|
|
8642
8773
|
if (!mockAnswer) return null;
|
|
8643
8774
|
const action = mockAnswer.isCorrect ? "success" : "error";
|
|
8644
|
-
const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0,
|
|
8645
|
-
return /* @__PURE__ */ (0,
|
|
8775
|
+
const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.XCircle, {});
|
|
8776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8646
8777
|
Badge_default,
|
|
8647
8778
|
{
|
|
8648
8779
|
variant: "solid",
|
|
@@ -8650,7 +8781,7 @@ var QuizFill = ({
|
|
|
8650
8781
|
iconRight: icon,
|
|
8651
8782
|
size: "large",
|
|
8652
8783
|
className: "py-3 w-[180px] justify-between mb-2.5",
|
|
8653
|
-
children: /* @__PURE__ */ (0,
|
|
8784
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
|
|
8654
8785
|
},
|
|
8655
8786
|
selectId
|
|
8656
8787
|
);
|
|
@@ -8706,25 +8837,25 @@ var QuizFill = ({
|
|
|
8706
8837
|
}
|
|
8707
8838
|
return elements;
|
|
8708
8839
|
};
|
|
8709
|
-
return /* @__PURE__ */ (0,
|
|
8710
|
-
/* @__PURE__ */ (0,
|
|
8711
|
-
/* @__PURE__ */ (0,
|
|
8840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8841
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8842
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8712
8843
|
"div",
|
|
8713
8844
|
{
|
|
8714
8845
|
className: cn(
|
|
8715
8846
|
"text-lg text-text-900 leading-8 h-auto",
|
|
8716
8847
|
variant != "result" && paddingBottom
|
|
8717
8848
|
),
|
|
8718
|
-
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0,
|
|
8849
|
+
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: element.element }, element.id))
|
|
8719
8850
|
}
|
|
8720
8851
|
) }) }),
|
|
8721
|
-
variant === "result" && /* @__PURE__ */ (0,
|
|
8722
|
-
/* @__PURE__ */ (0,
|
|
8723
|
-
/* @__PURE__ */ (0,
|
|
8852
|
+
variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8853
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
|
|
8854
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8724
8855
|
"div",
|
|
8725
8856
|
{
|
|
8726
8857
|
className: cn("text-lg text-text-900 leading-8", paddingBottom),
|
|
8727
|
-
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0,
|
|
8858
|
+
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: element.element }, element.id))
|
|
8728
8859
|
}
|
|
8729
8860
|
) }) })
|
|
8730
8861
|
] })
|
|
@@ -8744,7 +8875,7 @@ var QuizImageQuestion = ({
|
|
|
8744
8875
|
};
|
|
8745
8876
|
const correctRadiusRelative = calculateCorrectRadiusRelative();
|
|
8746
8877
|
const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
|
|
8747
|
-
const [clickPositionRelative, setClickPositionRelative] = (0,
|
|
8878
|
+
const [clickPositionRelative, setClickPositionRelative] = (0, import_react27.useState)(variant == "result" ? mockUserAnswerRelative : null);
|
|
8748
8879
|
const convertToRelativeCoordinates = (x, y, rect) => {
|
|
8749
8880
|
const safeWidth = Math.max(rect.width, 1e-3);
|
|
8750
8881
|
const safeHeight = Math.max(rect.height, 1e-3);
|
|
@@ -8780,36 +8911,36 @@ var QuizImageQuestion = ({
|
|
|
8780
8911
|
}
|
|
8781
8912
|
return "bg-success-600/70 border-white";
|
|
8782
8913
|
};
|
|
8783
|
-
return /* @__PURE__ */ (0,
|
|
8784
|
-
/* @__PURE__ */ (0,
|
|
8785
|
-
/* @__PURE__ */ (0,
|
|
8914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
8915
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
|
|
8916
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8786
8917
|
"div",
|
|
8787
8918
|
{
|
|
8788
8919
|
"data-testid": "quiz-image-container",
|
|
8789
8920
|
className: "space-y-6 p-3 relative inline-block",
|
|
8790
8921
|
children: [
|
|
8791
|
-
variant == "result" && /* @__PURE__ */ (0,
|
|
8922
|
+
variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8792
8923
|
"div",
|
|
8793
8924
|
{
|
|
8794
8925
|
"data-testid": "quiz-legend",
|
|
8795
8926
|
className: "flex items-center gap-4 text-xs",
|
|
8796
8927
|
children: [
|
|
8797
|
-
/* @__PURE__ */ (0,
|
|
8798
|
-
/* @__PURE__ */ (0,
|
|
8799
|
-
/* @__PURE__ */ (0,
|
|
8928
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8929
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
|
|
8930
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
|
|
8800
8931
|
] }),
|
|
8801
|
-
/* @__PURE__ */ (0,
|
|
8802
|
-
/* @__PURE__ */ (0,
|
|
8803
|
-
/* @__PURE__ */ (0,
|
|
8932
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8933
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
|
|
8934
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
|
|
8804
8935
|
] }),
|
|
8805
|
-
/* @__PURE__ */ (0,
|
|
8806
|
-
/* @__PURE__ */ (0,
|
|
8807
|
-
/* @__PURE__ */ (0,
|
|
8936
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8937
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
|
|
8938
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
|
|
8808
8939
|
] })
|
|
8809
8940
|
]
|
|
8810
8941
|
}
|
|
8811
8942
|
),
|
|
8812
|
-
/* @__PURE__ */ (0,
|
|
8943
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
8813
8944
|
"button",
|
|
8814
8945
|
{
|
|
8815
8946
|
"data-testid": "quiz-image-button",
|
|
@@ -8824,7 +8955,7 @@ var QuizImageQuestion = ({
|
|
|
8824
8955
|
},
|
|
8825
8956
|
"aria-label": "\xC1rea da imagem interativa",
|
|
8826
8957
|
children: [
|
|
8827
|
-
/* @__PURE__ */ (0,
|
|
8958
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8828
8959
|
"img",
|
|
8829
8960
|
{
|
|
8830
8961
|
"data-testid": "quiz-image",
|
|
@@ -8833,7 +8964,7 @@ var QuizImageQuestion = ({
|
|
|
8833
8964
|
className: "w-full h-auto rounded-md"
|
|
8834
8965
|
}
|
|
8835
8966
|
),
|
|
8836
|
-
variant === "result" && /* @__PURE__ */ (0,
|
|
8967
|
+
variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8837
8968
|
"div",
|
|
8838
8969
|
{
|
|
8839
8970
|
"data-testid": "quiz-correct-circle",
|
|
@@ -8848,7 +8979,7 @@ var QuizImageQuestion = ({
|
|
|
8848
8979
|
}
|
|
8849
8980
|
}
|
|
8850
8981
|
),
|
|
8851
|
-
clickPositionRelative && /* @__PURE__ */ (0,
|
|
8982
|
+
clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8852
8983
|
"div",
|
|
8853
8984
|
{
|
|
8854
8985
|
"data-testid": "quiz-user-circle",
|
|
@@ -8916,16 +9047,16 @@ var QuizQuestionList = ({
|
|
|
8916
9047
|
return "Em branco";
|
|
8917
9048
|
}
|
|
8918
9049
|
};
|
|
8919
|
-
return /* @__PURE__ */ (0,
|
|
8920
|
-
([subjectId, questions]) => /* @__PURE__ */ (0,
|
|
8921
|
-
/* @__PURE__ */ (0,
|
|
8922
|
-
/* @__PURE__ */ (0,
|
|
8923
|
-
/* @__PURE__ */ (0,
|
|
9050
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
|
|
9051
|
+
([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { className: "flex flex-col gap-2", children: [
|
|
9052
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
|
|
9053
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.BookOpen, { size: 17, className: "text-white" }) }),
|
|
9054
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
|
|
8924
9055
|
] }),
|
|
8925
|
-
/* @__PURE__ */ (0,
|
|
9056
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
|
|
8926
9057
|
const status = getQuestionStatus(question.id);
|
|
8927
9058
|
const questionNumber = getQuestionIndex(question.id);
|
|
8928
|
-
return /* @__PURE__ */ (0,
|
|
9059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
8929
9060
|
CardStatus,
|
|
8930
9061
|
{
|
|
8931
9062
|
header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
|
|
@@ -8941,7 +9072,7 @@ var QuizQuestionList = ({
|
|
|
8941
9072
|
] }, subjectId)
|
|
8942
9073
|
) });
|
|
8943
9074
|
};
|
|
8944
|
-
var QuizFooter = (0,
|
|
9075
|
+
var QuizFooter = (0, import_react27.forwardRef)(
|
|
8945
9076
|
({
|
|
8946
9077
|
className,
|
|
8947
9078
|
onGoToSimulated,
|
|
@@ -8969,11 +9100,11 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
8969
9100
|
const currentAnswer = getCurrentAnswer();
|
|
8970
9101
|
const currentQuestion = getCurrentQuestion();
|
|
8971
9102
|
const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
|
|
8972
|
-
const [alertDialogOpen, setAlertDialogOpen] = (0,
|
|
8973
|
-
const [modalResultOpen, setModalResultOpen] = (0,
|
|
8974
|
-
const [modalNavigateOpen, setModalNavigateOpen] = (0,
|
|
8975
|
-
const [modalResolutionOpen, setModalResolutionOpen] = (0,
|
|
8976
|
-
const [filterType, setFilterType] = (0,
|
|
9103
|
+
const [alertDialogOpen, setAlertDialogOpen] = (0, import_react27.useState)(false);
|
|
9104
|
+
const [modalResultOpen, setModalResultOpen] = (0, import_react27.useState)(false);
|
|
9105
|
+
const [modalNavigateOpen, setModalNavigateOpen] = (0, import_react27.useState)(false);
|
|
9106
|
+
const [modalResolutionOpen, setModalResolutionOpen] = (0, import_react27.useState)(false);
|
|
9107
|
+
const [filterType, setFilterType] = (0, import_react27.useState)("all");
|
|
8977
9108
|
const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
|
|
8978
9109
|
const userAnswers = getUserAnswers();
|
|
8979
9110
|
const allQuestions = getTotalQuestions();
|
|
@@ -9005,8 +9136,8 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9005
9136
|
setAlertDialogOpen(false);
|
|
9006
9137
|
}
|
|
9007
9138
|
};
|
|
9008
|
-
return /* @__PURE__ */ (0,
|
|
9009
|
-
/* @__PURE__ */ (0,
|
|
9139
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
9140
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9010
9141
|
"footer",
|
|
9011
9142
|
{
|
|
9012
9143
|
ref,
|
|
@@ -9015,17 +9146,17 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9015
9146
|
className
|
|
9016
9147
|
),
|
|
9017
9148
|
...props,
|
|
9018
|
-
children: variant === "default" ? /* @__PURE__ */ (0,
|
|
9019
|
-
/* @__PURE__ */ (0,
|
|
9020
|
-
/* @__PURE__ */ (0,
|
|
9149
|
+
children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
9150
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
|
|
9151
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9021
9152
|
IconButton_default,
|
|
9022
9153
|
{
|
|
9023
|
-
icon: /* @__PURE__ */ (0,
|
|
9154
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.SquaresFour, { size: 24, className: "text-text-950" }),
|
|
9024
9155
|
size: "md",
|
|
9025
9156
|
onClick: () => setModalNavigateOpen(true)
|
|
9026
9157
|
}
|
|
9027
9158
|
),
|
|
9028
|
-
isFirstQuestion ? /* @__PURE__ */ (0,
|
|
9159
|
+
isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9029
9160
|
Button_default,
|
|
9030
9161
|
{
|
|
9031
9162
|
variant: "outline",
|
|
@@ -9036,13 +9167,13 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9036
9167
|
},
|
|
9037
9168
|
children: "Pular"
|
|
9038
9169
|
}
|
|
9039
|
-
) : /* @__PURE__ */ (0,
|
|
9170
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9040
9171
|
Button_default,
|
|
9041
9172
|
{
|
|
9042
9173
|
size: "medium",
|
|
9043
9174
|
variant: "link",
|
|
9044
9175
|
action: "primary",
|
|
9045
|
-
iconLeft: /* @__PURE__ */ (0,
|
|
9176
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CaretLeft, { size: 18 }),
|
|
9046
9177
|
onClick: () => {
|
|
9047
9178
|
goToPreviousQuestion();
|
|
9048
9179
|
},
|
|
@@ -9050,7 +9181,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9050
9181
|
}
|
|
9051
9182
|
)
|
|
9052
9183
|
] }),
|
|
9053
|
-
!isFirstQuestion && /* @__PURE__ */ (0,
|
|
9184
|
+
!isFirstQuestion && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9054
9185
|
Button_default,
|
|
9055
9186
|
{
|
|
9056
9187
|
size: "small",
|
|
@@ -9063,7 +9194,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9063
9194
|
children: "Pular"
|
|
9064
9195
|
}
|
|
9065
9196
|
),
|
|
9066
|
-
isLastQuestion ? /* @__PURE__ */ (0,
|
|
9197
|
+
isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9067
9198
|
Button_default,
|
|
9068
9199
|
{
|
|
9069
9200
|
size: "medium",
|
|
@@ -9073,13 +9204,13 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9073
9204
|
onClick: handleFinishQuiz,
|
|
9074
9205
|
children: "Finalizar"
|
|
9075
9206
|
}
|
|
9076
|
-
) : /* @__PURE__ */ (0,
|
|
9207
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9077
9208
|
Button_default,
|
|
9078
9209
|
{
|
|
9079
9210
|
size: "medium",
|
|
9080
9211
|
variant: "link",
|
|
9081
9212
|
action: "primary",
|
|
9082
|
-
iconRight: /* @__PURE__ */ (0,
|
|
9213
|
+
iconRight: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CaretRight, { size: 18 }),
|
|
9083
9214
|
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
9084
9215
|
onClick: () => {
|
|
9085
9216
|
goToNextQuestion();
|
|
@@ -9087,7 +9218,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9087
9218
|
children: "Avan\xE7ar"
|
|
9088
9219
|
}
|
|
9089
9220
|
)
|
|
9090
|
-
] }) : /* @__PURE__ */ (0,
|
|
9221
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9091
9222
|
Button_default,
|
|
9092
9223
|
{
|
|
9093
9224
|
variant: "solid",
|
|
@@ -9099,7 +9230,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9099
9230
|
) })
|
|
9100
9231
|
}
|
|
9101
9232
|
),
|
|
9102
|
-
/* @__PURE__ */ (0,
|
|
9233
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9103
9234
|
AlertDialog,
|
|
9104
9235
|
{
|
|
9105
9236
|
isOpen: alertDialogOpen,
|
|
@@ -9111,7 +9242,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9111
9242
|
onSubmit: handleAlertSubmit
|
|
9112
9243
|
}
|
|
9113
9244
|
),
|
|
9114
|
-
/* @__PURE__ */ (0,
|
|
9245
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9115
9246
|
Modal_default,
|
|
9116
9247
|
{
|
|
9117
9248
|
isOpen: modalResultOpen,
|
|
@@ -9121,8 +9252,8 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9121
9252
|
closeOnEscape: false,
|
|
9122
9253
|
hideCloseButton: true,
|
|
9123
9254
|
size: "md",
|
|
9124
|
-
children: /* @__PURE__ */ (0,
|
|
9125
|
-
/* @__PURE__ */ (0,
|
|
9255
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
|
|
9256
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9126
9257
|
"img",
|
|
9127
9258
|
{
|
|
9128
9259
|
src: simulated_result_default,
|
|
@@ -9130,9 +9261,9 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9130
9261
|
className: "w-[282px] h-auto object-cover"
|
|
9131
9262
|
}
|
|
9132
9263
|
),
|
|
9133
|
-
/* @__PURE__ */ (0,
|
|
9134
|
-
/* @__PURE__ */ (0,
|
|
9135
|
-
/* @__PURE__ */ (0,
|
|
9264
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
|
|
9265
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
|
|
9266
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "text-text-500 font-sm", children: [
|
|
9136
9267
|
"Voc\xEA acertou",
|
|
9137
9268
|
" ",
|
|
9138
9269
|
(() => {
|
|
@@ -9154,8 +9285,8 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9154
9285
|
" quest\xF5es."
|
|
9155
9286
|
] })
|
|
9156
9287
|
] }),
|
|
9157
|
-
/* @__PURE__ */ (0,
|
|
9158
|
-
/* @__PURE__ */ (0,
|
|
9288
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
|
|
9289
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9159
9290
|
Button_default,
|
|
9160
9291
|
{
|
|
9161
9292
|
variant: "outline",
|
|
@@ -9165,31 +9296,31 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9165
9296
|
children: "Ir para simulados"
|
|
9166
9297
|
}
|
|
9167
9298
|
),
|
|
9168
|
-
/* @__PURE__ */ (0,
|
|
9299
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
|
|
9169
9300
|
] })
|
|
9170
9301
|
] })
|
|
9171
9302
|
}
|
|
9172
9303
|
),
|
|
9173
|
-
/* @__PURE__ */ (0,
|
|
9304
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9174
9305
|
Modal_default,
|
|
9175
9306
|
{
|
|
9176
9307
|
isOpen: modalNavigateOpen,
|
|
9177
9308
|
onClose: () => setModalNavigateOpen(false),
|
|
9178
9309
|
title: "Quest\xF5es",
|
|
9179
9310
|
size: "lg",
|
|
9180
|
-
children: /* @__PURE__ */ (0,
|
|
9181
|
-
/* @__PURE__ */ (0,
|
|
9182
|
-
/* @__PURE__ */ (0,
|
|
9183
|
-
/* @__PURE__ */ (0,
|
|
9184
|
-
/* @__PURE__ */ (0,
|
|
9185
|
-
/* @__PURE__ */ (0,
|
|
9186
|
-
/* @__PURE__ */ (0,
|
|
9187
|
-
/* @__PURE__ */ (0,
|
|
9188
|
-
/* @__PURE__ */ (0,
|
|
9311
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col w-full h-full", children: [
|
|
9312
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
|
|
9313
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
|
|
9314
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
|
|
9315
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
|
|
9316
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(SelectContent, { children: [
|
|
9317
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "all", children: "Todas" }),
|
|
9318
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
|
|
9319
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
|
|
9189
9320
|
] })
|
|
9190
9321
|
] }) })
|
|
9191
9322
|
] }),
|
|
9192
|
-
/* @__PURE__ */ (0,
|
|
9323
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9193
9324
|
QuizQuestionList,
|
|
9194
9325
|
{
|
|
9195
9326
|
filterType,
|
|
@@ -9199,7 +9330,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9199
9330
|
] })
|
|
9200
9331
|
}
|
|
9201
9332
|
),
|
|
9202
|
-
/* @__PURE__ */ (0,
|
|
9333
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9203
9334
|
Modal_default,
|
|
9204
9335
|
{
|
|
9205
9336
|
isOpen: modalResolutionOpen,
|
|
@@ -9212,25 +9343,25 @@ var QuizFooter = (0, import_react26.forwardRef)(
|
|
|
9212
9343
|
] });
|
|
9213
9344
|
}
|
|
9214
9345
|
);
|
|
9215
|
-
var QuizResultHeaderTitle = (0,
|
|
9346
|
+
var QuizResultHeaderTitle = (0, import_react27.forwardRef)(({ className, ...props }, ref) => {
|
|
9216
9347
|
const { bySimulated } = useQuizStore();
|
|
9217
|
-
return /* @__PURE__ */ (0,
|
|
9348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
9218
9349
|
"div",
|
|
9219
9350
|
{
|
|
9220
9351
|
ref,
|
|
9221
9352
|
className: cn("flex flex-row pt-4 justify-between", className),
|
|
9222
9353
|
...props,
|
|
9223
9354
|
children: [
|
|
9224
|
-
/* @__PURE__ */ (0,
|
|
9225
|
-
bySimulated && /* @__PURE__ */ (0,
|
|
9355
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
|
|
9356
|
+
bySimulated && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
|
|
9226
9357
|
]
|
|
9227
9358
|
}
|
|
9228
9359
|
);
|
|
9229
9360
|
});
|
|
9230
|
-
var QuizResultTitle = (0,
|
|
9361
|
+
var QuizResultTitle = (0, import_react27.forwardRef)(({ className, ...props }, ref) => {
|
|
9231
9362
|
const { getQuizTitle } = useQuizStore();
|
|
9232
9363
|
const quizTitle = getQuizTitle();
|
|
9233
|
-
return /* @__PURE__ */ (0,
|
|
9364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9234
9365
|
"p",
|
|
9235
9366
|
{
|
|
9236
9367
|
className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
|
|
@@ -9240,7 +9371,7 @@ var QuizResultTitle = (0, import_react26.forwardRef)(({ className, ...props }, r
|
|
|
9240
9371
|
}
|
|
9241
9372
|
);
|
|
9242
9373
|
});
|
|
9243
|
-
var QuizResultPerformance = (0,
|
|
9374
|
+
var QuizResultPerformance = (0, import_react27.forwardRef)(
|
|
9244
9375
|
({ ...props }, ref) => {
|
|
9245
9376
|
const {
|
|
9246
9377
|
getTotalQuestions,
|
|
@@ -9286,15 +9417,15 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
|
|
|
9286
9417
|
});
|
|
9287
9418
|
}
|
|
9288
9419
|
const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
|
|
9289
|
-
return /* @__PURE__ */ (0,
|
|
9420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
9290
9421
|
"div",
|
|
9291
9422
|
{
|
|
9292
9423
|
className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
|
|
9293
9424
|
ref,
|
|
9294
9425
|
...props,
|
|
9295
9426
|
children: [
|
|
9296
|
-
/* @__PURE__ */ (0,
|
|
9297
|
-
/* @__PURE__ */ (0,
|
|
9427
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "relative", children: [
|
|
9428
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9298
9429
|
ProgressCircle_default,
|
|
9299
9430
|
{
|
|
9300
9431
|
size: "medium",
|
|
@@ -9304,21 +9435,21 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
|
|
|
9304
9435
|
label: ""
|
|
9305
9436
|
}
|
|
9306
9437
|
),
|
|
9307
|
-
/* @__PURE__ */ (0,
|
|
9308
|
-
/* @__PURE__ */ (0,
|
|
9309
|
-
/* @__PURE__ */ (0,
|
|
9310
|
-
/* @__PURE__ */ (0,
|
|
9438
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
|
|
9439
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
9440
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
|
|
9441
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(timeElapsed) })
|
|
9311
9442
|
] }),
|
|
9312
|
-
/* @__PURE__ */ (0,
|
|
9443
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
|
|
9313
9444
|
correctAnswers,
|
|
9314
9445
|
" de ",
|
|
9315
9446
|
totalQuestions
|
|
9316
9447
|
] }),
|
|
9317
|
-
/* @__PURE__ */ (0,
|
|
9448
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
|
|
9318
9449
|
] })
|
|
9319
9450
|
] }),
|
|
9320
|
-
/* @__PURE__ */ (0,
|
|
9321
|
-
/* @__PURE__ */ (0,
|
|
9451
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
|
|
9452
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9322
9453
|
ProgressBar_default,
|
|
9323
9454
|
{
|
|
9324
9455
|
className: "w-full",
|
|
@@ -9332,7 +9463,7 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
|
|
|
9332
9463
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
9333
9464
|
}
|
|
9334
9465
|
),
|
|
9335
|
-
/* @__PURE__ */ (0,
|
|
9466
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9336
9467
|
ProgressBar_default,
|
|
9337
9468
|
{
|
|
9338
9469
|
className: "w-full",
|
|
@@ -9346,7 +9477,7 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
|
|
|
9346
9477
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
9347
9478
|
}
|
|
9348
9479
|
),
|
|
9349
|
-
/* @__PURE__ */ (0,
|
|
9480
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9350
9481
|
ProgressBar_default,
|
|
9351
9482
|
{
|
|
9352
9483
|
className: "w-full",
|
|
@@ -9366,7 +9497,7 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
|
|
|
9366
9497
|
);
|
|
9367
9498
|
}
|
|
9368
9499
|
);
|
|
9369
|
-
var QuizListResult = (0,
|
|
9500
|
+
var QuizListResult = (0, import_react27.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
|
|
9370
9501
|
const {
|
|
9371
9502
|
getQuestionsGroupedBySubject,
|
|
9372
9503
|
isQuestionAnswered,
|
|
@@ -9395,9 +9526,9 @@ var QuizListResult = (0, import_react26.forwardRef)(({ className, onSubjectClick
|
|
|
9395
9526
|
};
|
|
9396
9527
|
}
|
|
9397
9528
|
);
|
|
9398
|
-
return /* @__PURE__ */ (0,
|
|
9399
|
-
/* @__PURE__ */ (0,
|
|
9400
|
-
/* @__PURE__ */ (0,
|
|
9529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { ref, className, ...props, children: [
|
|
9530
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
|
|
9531
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9401
9532
|
CardResults,
|
|
9402
9533
|
{
|
|
9403
9534
|
onClick: () => onSubjectClick?.(subject.subject),
|
|
@@ -9405,7 +9536,7 @@ var QuizListResult = (0, import_react26.forwardRef)(({ className, onSubjectClick
|
|
|
9405
9536
|
header: subject.subject,
|
|
9406
9537
|
correct_answers: subject.correct,
|
|
9407
9538
|
incorrect_answers: subject.incorrect,
|
|
9408
|
-
icon: /* @__PURE__ */ (0,
|
|
9539
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Book, { size: 20 }),
|
|
9409
9540
|
direction: "row"
|
|
9410
9541
|
}
|
|
9411
9542
|
) }, subject.subject)) })
|
|
@@ -9422,13 +9553,13 @@ var QuizListResultByMateria = ({
|
|
|
9422
9553
|
} = useQuizStore();
|
|
9423
9554
|
const groupedQuestions = getQuestionsGroupedBySubject();
|
|
9424
9555
|
const answeredQuestions = groupedQuestions[subject] || [];
|
|
9425
|
-
return /* @__PURE__ */ (0,
|
|
9426
|
-
/* @__PURE__ */ (0,
|
|
9427
|
-
/* @__PURE__ */ (0,
|
|
9428
|
-
/* @__PURE__ */ (0,
|
|
9429
|
-
/* @__PURE__ */ (0,
|
|
9556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
|
|
9557
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
|
|
9558
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { className: "flex flex-col ", children: [
|
|
9559
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
|
|
9560
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
|
|
9430
9561
|
const questionIndex = getQuestionIndex(question.id);
|
|
9431
|
-
return /* @__PURE__ */ (0,
|
|
9562
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
9432
9563
|
CardStatus,
|
|
9433
9564
|
{
|
|
9434
9565
|
className: "max-w-full",
|
|
@@ -9542,6 +9673,7 @@ var QuizListResultByMateria = ({
|
|
|
9542
9673
|
Toast,
|
|
9543
9674
|
Toaster,
|
|
9544
9675
|
VideoPlayer,
|
|
9676
|
+
Whiteboard,
|
|
9545
9677
|
createZustandAuthAdapter,
|
|
9546
9678
|
getRootDomain,
|
|
9547
9679
|
getStatusBadge,
|