@digabi/exam-engine-core 23.13.3 → 23.13.6
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/__tests__/annotations.test.d.ts +2 -0
- package/dist/__tests__/annotations.test.d.ts.map +1 -0
- package/dist/__tests__/annotations.test.js +217 -0
- package/dist/__tests__/annotations.test.js.map +1 -0
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/assets/NotoMono.ttf +0 -0
- package/dist/assets/NotoSans-Bold.ttf +0 -0
- package/dist/assets/NotoSans-BoldItalic.ttf +0 -0
- package/dist/assets/NotoSans-Italic.ttf +0 -0
- package/dist/assets/NotoSans-Light.ttf +0 -0
- package/dist/assets/NotoSans-LightItalic.ttf +0 -0
- package/dist/assets/NotoSans-Regular.ttf +0 -0
- package/dist/assets/NotoSans-SemiBold.ttf +0 -0
- package/dist/assets/NotoSans-SemiBoldItalic.ttf +0 -0
- package/dist/assets/closeButton.svg +1 -0
- package/dist/assets/collapse.svg +12 -0
- package/dist/assets/expand.svg +12 -0
- package/dist/assets/helpButton.svg +9 -0
- package/dist/assets/redoButton.svg +5 -0
- package/dist/assets/undoButton.svg +5 -0
- package/dist/components/exam/ExamineExam.d.ts +5 -0
- package/dist/components/exam/ExamineExam.d.ts.map +1 -0
- package/dist/components/exam/ExamineExam.js +20 -0
- package/dist/components/exam/ExamineExam.js.map +1 -0
- package/dist/components/exam/Question.d.ts.map +1 -1
- package/dist/components/exam/Question.js +0 -3
- package/dist/components/exam/Question.js.map +1 -1
- package/dist/components/exam/UndoView.d.ts +0 -1
- package/dist/components/exam/UndoView.d.ts.map +1 -1
- package/dist/components/exam/UndoView.js +0 -3
- package/dist/components/exam/UndoView.js.map +1 -1
- package/dist/components/grading/examAnnotationUtils.d.ts +4 -0
- package/dist/components/grading/examAnnotationUtils.d.ts.map +1 -0
- package/dist/components/grading/examAnnotationUtils.js +51 -0
- package/dist/components/grading/examAnnotationUtils.js.map +1 -0
- package/dist/components/shared/AnnotatableText.d.ts +7 -0
- package/dist/components/shared/AnnotatableText.d.ts.map +1 -0
- package/dist/components/shared/AnnotatableText.js +73 -0
- package/dist/components/shared/AnnotatableText.js.map +1 -0
- package/dist/components/shared/AnnotationPopup.d.ts +3 -0
- package/dist/components/shared/AnnotationPopup.d.ts.map +1 -0
- package/dist/components/shared/AnnotationPopup.js +74 -0
- package/dist/components/shared/AnnotationPopup.js.map +1 -0
- package/dist/components/shared/internal/AudioPlaybackError.d.ts +8 -0
- package/dist/components/shared/internal/AudioPlaybackError.d.ts.map +1 -0
- package/dist/components/shared/internal/AudioPlaybackError.js +17 -0
- package/dist/components/shared/internal/AudioPlaybackError.js.map +1 -0
- package/dist/components/shared/internal/ModalDialog.js +2 -2
- package/dist/components/shared/internal/ModalDialog.js.map +1 -1
- package/dist/components/surround.d.ts +8 -0
- package/dist/components/surround.d.ts.map +1 -0
- package/dist/components/surround.js +19 -0
- package/dist/components/surround.js.map +1 -0
- package/dist/main-bundle.js +1 -1
- package/package.json +2 -2
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30" height="30" viewBox="0 0 30 30"><defs><clipPath id="clip-path"><path d="M141.57-89.324v-2.34H143.2v2.34A2.3,2.3,0,0,1,140.9-87.03H130.1a2.3,2.3,0,0,1-2.292-2.294v-17.029a2.294,2.294,0,0,1,2.292-2.292h10.8a2.3,2.3,0,0,1,2.295,2.292v2.342H141.57v-2.342a.669.669,0,0,0-.67-.667H130.1a.667.667,0,0,0-.667.667v17.029a.668.668,0,0,0,.667.669h10.8A.67.67,0,0,0,141.57-89.324Zm3.271-13.579a1.069,1.069,0,0,1,1.825-.755l5.065,5.065a1.065,1.065,0,0,1,0,1.511l-5.065,5.067a1.07,1.07,0,0,1-1.825-.757v-2.412h-6.633a2.3,2.3,0,0,1-2.3-2.3v-.7a2.3,2.3,0,0,1,2.3-2.3h6.633V-102.9" fill="none" clip-rule="evenodd"/></clipPath><clipPath id="clip-path-2"><ellipse cx="10" cy="-29.606" rx="15" ry="14.933" fill="none"/></clipPath></defs><title>closeButton</title><rect width="30" height="30" fill="#fff" opacity="0"/><line x1="25" y1="5" x2="5" y2="25" fill="none" stroke="#6d6d6d" stroke-miterlimit="10" stroke-width="3"/><line x1="5" y1="5" x2="25" y2="25" fill="none" stroke="#6d6d6d" stroke-miterlimit="10" stroke-width="3"/></svg>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<svg width="19px" height="12px" viewBox="0 0 19 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
3
|
+
<!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
|
4
|
+
<title>Page 1</title>
|
5
|
+
<desc>Created with Sketch.</desc>
|
6
|
+
<defs></defs>
|
7
|
+
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
8
|
+
<g id="Kuuntelu-kokelas-painaa-nappia-Copy-18" transform="translate(-1068.000000, -19.000000)" stroke-width="3" stroke="#359BB7">
|
9
|
+
<polyline id="Page-1" transform="translate(1077.999981, 26.000000) rotate(180.000000) translate(-1077.999981, -26.000000) " points="1085.99996 22 1077.99996 30 1070 22"></polyline>
|
10
|
+
</g>
|
11
|
+
</g>
|
12
|
+
</svg>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<svg width="18px" height="12px" viewBox="0 0 18 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
3
|
+
<!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
|
4
|
+
<title>Page 1</title>
|
5
|
+
<desc>Created with Sketch.</desc>
|
6
|
+
<defs></defs>
|
7
|
+
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
8
|
+
<g id="Kuuntelu-kokelas-painaa-nappia-Copy-18" transform="translate(-1069.000000, -21.000000)" stroke-width="3" stroke="#359BB7">
|
9
|
+
<polyline id="Page-1" points="1085.99996 22 1077.99996 30 1070 22"></polyline>
|
10
|
+
</g>
|
11
|
+
</g>
|
12
|
+
</svg>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<svg version="1.1"
|
2
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
|
3
|
+
x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
4
|
+
<path fill="#359BB7" d="M10,20C4.48,20,0,15.52,0,10C0,4.48,4.48,0,10,0s10,4.48,10,10C20,15.52,15.52,20,10,20z M5.57,5.88
|
5
|
+
c-0.14,0.21-0.09,0.5,0.11,0.66l1.4,1.06c0.21,0.16,0.51,0.12,0.67-0.09c0.72-0.91,1.21-1.44,2.31-1.44c0.82,0,1.84,0.53,1.84,1.33
|
6
|
+
c0,0.6-0.5,0.91-1.31,1.37c-0.95,0.53-2.2,1.19-2.2,2.85v0.16c0,0.27,0.22,0.48,0.48,0.48h2.26c0.27,0,0.48-0.22,0.48-0.48v-0.05
|
7
|
+
c0-1.15,3.35-1.2,3.35-4.3c0-2.34-2.43-4.11-4.7-4.11C8.07,3.31,6.67,4.23,5.57,5.88z M8.15,15.16c0,1.02,0.83,1.85,1.85,1.85
|
8
|
+
s1.85-0.83,1.85-1.85s-0.83-1.85-1.85-1.85S8.15,14.14,8.15,15.16z"/>
|
9
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20" version="1.1">
|
2
|
+
<g id="surface1">
|
3
|
+
<path fill="#359BB7" d="M 18.316406 1.253906 C 18.859375 1.253906 19.378906 1.675781 19.378906 2.3125 L 19.378906 8.007812 C 19.378906 8.421875 19.042969 8.757812 18.628906 8.757812 L 12.9375 8.757812 C 12.300781 8.757812 11.882812 8.238281 11.882812 7.695312 C 11.882812 7.4375 11.976562 7.171875 12.191406 6.957031 L 13.953125 5.195312 C 12.851562 4.289062 11.460938 3.761719 9.996094 3.761719 C 6.554688 3.761719 3.753906 6.5625 3.753906 10.003906 C 3.753906 13.449219 6.554688 16.246094 9.996094 16.246094 C 12.851562 16.246094 13.488281 14.75 14.492188 14.75 C 15.214844 14.75 15.742188 15.335938 15.742188 15.996094 C 15.742188 17.367188 12.554688 18.75 10 18.75 C 5.179688 18.75 1.253906 14.824219 1.253906 10.003906 C 1.253906 5.183594 5.179688 1.265625 10 1.265625 C 12.132812 1.265625 14.148438 2.0625 15.71875 3.425781 L 17.578125 1.566406 C 17.792969 1.351562 18.058594 1.253906 18.316406 1.253906 Z M 18.316406 1.253906 "/>
|
4
|
+
</g>
|
5
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="20px" viewBox="0 0 20 20" version="1.1">
|
2
|
+
<g id="surface1">
|
3
|
+
<path fill="#359BB7" d="M 18.75 10 C 18.75 14.820312 14.824219 18.746094 10.003906 18.746094 C 8.097656 18.746094 6.285156 18.136719 4.761719 16.992188 C 4.210938 16.578125 4.097656 15.796875 4.511719 15.242188 C 4.925781 14.691406 5.707031 14.582031 6.261719 14.996094 C 7.351562 15.8125 8.644531 16.242188 10.007812 16.242188 C 13.449219 16.242188 16.25 13.441406 16.25 10 C 16.25 6.558594 13.449219 3.757812 10.007812 3.757812 C 8.542969 3.757812 7.152344 4.285156 6.050781 5.1875 L 7.8125 6.953125 C 8.476562 7.617188 8.007812 8.753906 7.066406 8.753906 L 1.375 8.753906 C 0.960938 8.753906 0.625 8.417969 0.625 8.003906 L 0.625 2.304688 C 0.625 1.367188 1.761719 0.898438 2.425781 1.5625 L 4.285156 3.421875 C 5.855469 2.058594 7.871094 1.253906 10.003906 1.253906 C 14.824219 1.253906 18.75 5.179688 18.75 10 Z M 18.75 10 "/>
|
4
|
+
</g>
|
5
|
+
</svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ExamineExam.d.ts","sourceRoot":"","sources":["../../../src/components/exam/ExamineExam.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAKzC,iBAAS,WAAW,sBA4BnB;;AAED,wBAAsC"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { useExamTranslation } from '../../i18n';
|
3
|
+
import { ExamContext } from '../context/ExamContext';
|
4
|
+
function ExamineExam() {
|
5
|
+
const { examServerApi } = useContext(ExamContext);
|
6
|
+
const { examineExam } = examServerApi;
|
7
|
+
const { t } = useExamTranslation();
|
8
|
+
const goToInspectAnswers = () => {
|
9
|
+
if (!examineExam) {
|
10
|
+
return;
|
11
|
+
}
|
12
|
+
examineExam();
|
13
|
+
window.scrollTo(0, 0);
|
14
|
+
};
|
15
|
+
return (React.createElement("div", { className: "e-examine-exam" },
|
16
|
+
React.createElement("button", { className: "e-button", id: "examineExam", onClick: goToInspectAnswers, "aria-describedby": "examineExamInstructions" }, t('examine-exam.examine')),
|
17
|
+
React.createElement("div", { className: "e-examine-exam-instructions", id: "examineExamInstructions" }, t('examine-exam.instructions'))));
|
18
|
+
}
|
19
|
+
export default React.memo(ExamineExam);
|
20
|
+
//# sourceMappingURL=ExamineExam.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ExamineExam.js","sourceRoot":"","sources":["../../../src/components/exam/ExamineExam.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,SAAS,WAAW;IAClB,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,EAAE,WAAW,EAAE,GAAkB,aAAa,CAAA;IACpD,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAElC,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,WAAW,EAAE,CAAA;QACb,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB;QAC7B,gCACE,SAAS,EAAC,UAAU,EACpB,EAAE,EAAC,aAAa,EAChB,OAAO,EAAE,kBAAkB,sBACV,yBAAyB,IAEzC,CAAC,CAAC,sBAAsB,CAAC,CACnB;QACT,6BAAK,SAAS,EAAC,6BAA6B,EAAC,EAAE,EAAC,yBAAyB,IACtE,CAAC,CAAC,2BAA2B,CAAC,CAC3B,CACF,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Question.d.ts","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAc7E,eAAO,MAAM,qBAAqB;cACtB,OAAO;sBACC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;EACkB,CAAA;;
|
1
|
+
{"version":3,"file":"Question.d.ts","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAc7E,eAAO,MAAM,qBAAqB;cACtB,OAAO;sBACC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;EACkB,CAAA;;AA2E1D,wBAAwD"}
|
@@ -27,9 +27,6 @@ function Question({ element, renderChildNodes }) {
|
|
27
27
|
? `Writer mode opened for display number ${displayNumber}`
|
28
28
|
: `Writer mode closed for display number ${displayNumber}`);
|
29
29
|
}
|
30
|
-
if (!expand) {
|
31
|
-
setTimeout(() => { var _a; return (_a = document.getElementById(`question-nr-${displayNumber}`)) === null || _a === void 0 ? void 0 : _a.scrollIntoView(); }, 10);
|
32
|
-
}
|
33
30
|
};
|
34
31
|
const textAnswerElement = query(element, 'text-answer');
|
35
32
|
const questionId = textAnswerElement ? getNumericAttribute(textAnswerElement, 'question-id') : null;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,WAAW,MAAM,gCAAgC,CAAA;AACxD,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,aAAa,MAAM,0BAA0B,CAAA;AAEpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAG/C,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;AAE1D,SAAS,QAAQ,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAsB;IACjE,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAChF,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAExD,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAElC,MAAM,gBAAgB,GAAG,CAAC,MAAe,EAAE,EAAE;QAC3C,WAAW,CAAC,MAAM,CAAC,CAAA;QACnB,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9B,aAAa,CAAC,WAAW,CACvB,MAAM;gBACJ,CAAC,CAAC,yCAAyC,aAAa,EAAE;gBAC1D,CAAC,CAAC,yCAAyC,aAAa,EAAE,CAC7D,CAAA;QACH,CAAC;
|
1
|
+
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"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"}
|
@@ -21,7 +21,6 @@ interface UndoViewState {
|
|
21
21
|
export declare class UndoView extends React.PureComponent<UndoViewProps, UndoViewState> {
|
22
22
|
private source;
|
23
23
|
constructor(props: UndoViewProps);
|
24
|
-
toggleBodyScroll: (scrollEnabled: boolean) => boolean;
|
25
24
|
componentDidMount(): void;
|
26
25
|
componentWillUnmount(): void;
|
27
26
|
componentDidUpdate(prevProps: UndoViewProps): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"UndoView.d.ts","sourceRoot":"","sources":["../../../src/components/exam/UndoView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAc,cAAc,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAI/E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,KAAK,IAAI,CAAA;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AA0FD,qBAAa,QAAS,SAAQ,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAuB;gBAEzB,KAAK,EAAE,aAAa;
|
1
|
+
{"version":3,"file":"UndoView.d.ts","sourceRoot":"","sources":["../../../src/components/exam/UndoView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAc,cAAc,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAI/E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,KAAK,IAAI,CAAA;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AA0FD,qBAAa,QAAS,SAAQ,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAuB;gBAEzB,KAAK,EAAE,aAAa;IAUzB,iBAAiB;IAKjB,oBAAoB;IAKpB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAMlD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe,CAMtB;YAEa,kBAAkB;IAmBhC,OAAO,CAAC,KAAK;IASN,MAAM;CAkDd"}
|
@@ -60,7 +60,6 @@ export class UndoView extends React.PureComponent {
|
|
60
60
|
constructor(props) {
|
61
61
|
super(props);
|
62
62
|
this.source = CancelToken.source();
|
63
|
-
this.toggleBodyScroll = (scrollEnabled) => document.documentElement.classList.toggle('e-exam-body-no-scroll', !scrollEnabled);
|
64
63
|
this.keydownListener = (event) => {
|
65
64
|
if (event.keyCode === 13) {
|
66
65
|
const selectedAnswer = this.state.answers[this.state.selectedAnswerIndex];
|
@@ -76,14 +75,12 @@ export class UndoView extends React.PureComponent {
|
|
76
75
|
};
|
77
76
|
}
|
78
77
|
componentDidMount() {
|
79
|
-
this.toggleBodyScroll(false);
|
80
78
|
document.addEventListener('keydown', this.keydownListener, false);
|
81
79
|
void this.fetchAnswerHistory(this.props.questionId);
|
82
80
|
}
|
83
81
|
componentWillUnmount() {
|
84
82
|
this.source.cancel();
|
85
83
|
document.removeEventListener('keydown', this.keydownListener, false);
|
86
|
-
this.toggleBodyScroll(true);
|
87
84
|
}
|
88
85
|
componentDidUpdate(prevProps) {
|
89
86
|
if (this.props.questionId !== prevProps.questionId) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"UndoView.js","sourceRoot":"","sources":["../../../src/components/exam/UndoView.tsx"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"UndoView.js","sourceRoot":"","sources":["../../../src/components/exam/UndoView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,WAAW,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;AA4BrC,SAAS,oBAAoB,CAAC,MAA2B;IACvD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,WAAW;QAC9B,cAAc,EAAE,MAAM,CAAC,eAAe;KACvC,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAA8C;IACnE,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAChC,OAAO,cAAc,CAAC,CAAC,CAAC,CACtB,cAAc,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CACnC,6BACE,SAAS,EAAC,kDAAkD,EAC5D,uBAAuB,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,GACzD,CACH,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,4DAA4D,IAAE,cAAc,CAAC,KAAK,CAAO,CACzG,CACF,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,SAAS,SAAS,CAAC,KAKlB;IACC,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAChF,MAAM,oBAAoB,GAAG,CAAC,cAAc,IAAI,mBAAmB,KAAK,CAAC,CAAA;IACzE,OAAO,CACL,6BAAK,SAAS,EAAC,wBAAwB;QACrC,gCACE,SAAS,EAAC,oDAAoD,EAC9D,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,IAAI,aAAa,CAAC,EAAE,GAAG,cAAc,EAAE,UAAU,EAAE,CAAC;YAEjF,oBAAC,kBAAkB,OAAG,CACf,CACL,CACP,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC/C,SAAS,CAAC,SAAS,GAAG,IAAI,CAAA;IAC1B,OAAO,SAAS,CAAC,SAAS,CAAA;AAC5B,CAAC;AACD,SAAS,aAAa,CAAC,MAA0B;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClF,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,MAA0B,EAAE,MAAM,GAAG,EAAE;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,IAAI,UAAU,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAChC,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAA;IACrB,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAA;IAEzC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAA;AACvG,CAAC;AAED,SAAS,eAAe,CAAC,MAA0B;IACjD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAA;AACvC,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA0B;IAClD,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACnD,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAA;IACtC,MAAM,qBAAqB,GAAG,uDAAuD,CAAA;IACrF,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;IAC/D,MAAM,eAAe,GAAG,aAAa,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;IAC5E,MAAM,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAA;IAClF,OAAO,UAAU,GAAG,aAAa,GAAG,eAAe,CAAA;AACrD,CAAC;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK,CAAC,aAA2C;IAG7E,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAA;QAHN,WAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAA;QAmC7B,oBAAe,GAAG,CAAC,KAAoB,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACzB,MAAM,cAAc,GAAuB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBAC7F,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;gBAClF,IAAI,CAAC,KAAK,EAAE,CAAA;YACd,CAAC;QACH,CAAC,CAAA;QArCC,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,EAAE;YACX,mBAAmB,EAAE,CAAC;YACtB,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,IAAI;SACvB,CAAA;IACH,CAAC;IAEM,iBAAiB;QACtB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QACjE,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACrD,CAAC;IAEM,oBAAoB;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QACpB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IACtE,CAAC;IAEM,kBAAkB,CAAC,SAAwB;QAChD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAAuC;QAC5D,MAAM,WAAW,GAAI,KAAK,CAAC,MAAyB,CAAC,SAAS,CAAA;QAC9D,IAAI,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IAUO,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACjD,IAAI,CAAC;YACH,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC,GAAG,CAAwB,wBAAwB,UAAU,EAAE,EAAE;gBACvG,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;aAC/B,CAAC,CAAA;YACF,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAA;YAC9C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;YACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;wBACvC,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;oBAC1C,CAAC,EAAE,IAAI,CAAC;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAA;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEM,MAAM;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACzE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;QAChC,OAAO,CACL,oBAAC,WAAW,IAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,6BAAK,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAC,2BAA2B,gBAAY,MAAM;gBACnG,6BAAK,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa;oBACpC,oBAAC,WAAW,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI;oBAE5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CACpB,oBAAC,OAAO,OAAG,CACZ,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,qBAAqB;wBAClC,6BAAK,SAAS,EAAC,+CAA+C,IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;4BACxC,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAA;4BACnE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC,CAAA;4BACzD,OAAO,CACL,oBAAC,gBAAgB,IACf,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAC1C,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAClD,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAChE,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,EACrC,kBAAkB,EAAE,SAAS,EAC7B,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,EACvC,eAAe,EAAE,gBAAgB,CAAC,MAAM,CAAC,GACzC,CACH,CAAA;wBACH,CAAC,CAAC,CACE;wBACN,6BAAK,SAAS,EAAC,yBAAyB;4BACtC,6BAAK,SAAS,EAAC,wCAAwC;gCACrD,4BAAI,SAAS,EAAC,sCAAsC,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CACxE;4BACN,oBAAC,aAAa,IAAC,cAAc,EAAE,cAAc,GAAI;4BACjD,oBAAC,SAAS,IACR,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EACnD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EACvC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GACjC,CACE,CACF,CACP,CACG,CACF,CACM,CACf,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAClC,OAAO,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAG,CAAC,CAAC,cAAc,CAAC,CAAO,CAAA;AACnE,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAyB,EAAE,EAAE;IACvD,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAClC,OAAO,CACL;QACE,6BACE,GAAG,EAAC,qBAAqB,EACzB,EAAE,EAAC,uBAAuB,EAC1B,SAAS,EAAC,8DAA8D,EACxE,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,CAAC,EACX,IAAI,EAAC,QAAQ,gBACD,CAAC,CAAC,YAAY,CAAW,GACrC,CACE,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAClC,OAAO,iCAAM,CAAC,CAAC,oBAAoB,CAAC,CAAO,CAAA;AAC7C,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"examAnnotationUtils.d.ts","sourceRoot":"","sources":["../../../src/components/grading/examAnnotationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,QAuB9F;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAoCrD"}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { textAnnotationFromRange } from './editAnnotations';
|
2
|
+
export function onMouseDownForAnnotation(e, mouseUpCallback) {
|
3
|
+
function onMouseUpAfterAnswerMouseDown(e) {
|
4
|
+
const target = e.target;
|
5
|
+
window.removeEventListener('mouseup', onMouseUpAfterAnswerMouseDown);
|
6
|
+
// Text annotation
|
7
|
+
const selection = window.getSelection();
|
8
|
+
if (selection && hasTextSelectedInAnswerText()) {
|
9
|
+
const range = selection.getRangeAt(0);
|
10
|
+
const position = textAnnotationFromRange(target, range);
|
11
|
+
if (!position) {
|
12
|
+
return;
|
13
|
+
}
|
14
|
+
const selectedText = selection.toString();
|
15
|
+
mouseUpCallback({ ...position, selectedText });
|
16
|
+
}
|
17
|
+
}
|
18
|
+
// Do annotations only with left mouse buttons
|
19
|
+
if (e.button !== 0) {
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
window.addEventListener('mouseup', onMouseUpAfterAnswerMouseDown);
|
23
|
+
}
|
24
|
+
export function hasTextSelectedInAnswerText() {
|
25
|
+
const selection = window.getSelection();
|
26
|
+
return (selection !== null &&
|
27
|
+
selectionInAnswerText(selection) &&
|
28
|
+
(isRangeSelection(selection) || textSelectedInRange(selection)));
|
29
|
+
function selectionInAnswerText(sel) {
|
30
|
+
if (sel.type === 'None' || sel.type === 'Caret' || sel.rangeCount === 0) {
|
31
|
+
return false;
|
32
|
+
}
|
33
|
+
const startContainer = sel.getRangeAt(0).startContainer;
|
34
|
+
const endContainer = sel.getRangeAt(0).endContainer;
|
35
|
+
const startParent = startContainer.parentElement;
|
36
|
+
const endParent = endContainer.parentElement;
|
37
|
+
const visibleMarkTagExistsInSelection = Array.from(sel.getRangeAt(0).cloneContents().children).some(child => child.tagName === 'MARK' && child.getAttribute('data-hidden') === 'false');
|
38
|
+
return (sel.rangeCount > 0 &&
|
39
|
+
startParent === endParent &&
|
40
|
+
(startParent === null || startParent === void 0 ? void 0 : startParent.tagName) !== 'MARK' &&
|
41
|
+
!visibleMarkTagExistsInSelection);
|
42
|
+
}
|
43
|
+
function isRangeSelection(sel) {
|
44
|
+
return (sel === null || sel === void 0 ? void 0 : sel.type) === 'Range';
|
45
|
+
}
|
46
|
+
function textSelectedInRange(sel) {
|
47
|
+
const range = sel === null || sel === void 0 ? void 0 : sel.getRangeAt(0);
|
48
|
+
return !!sel.rangeCount && range.toString().length > 0;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
//# sourceMappingURL=examAnnotationUtils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"examAnnotationUtils.js","sourceRoot":"","sources":["../../../src/components/grading/examAnnotationUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,UAAU,wBAAwB,CAAC,CAAmB,EAAE,eAAiC;IAC7F,SAAS,6BAA6B,CAAC,CAAa;QAClD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAA;QACtC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAA;QAEpE,kBAAkB;QAClB,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;QACvC,IAAI,SAAS,IAAI,2BAA2B,EAAE,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACrC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAM;YACR,CAAC;YACD,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAA;YACzC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;IAEvC,OAAO,CACL,SAAS,KAAK,IAAI;QAClB,qBAAqB,CAAC,SAAS,CAAC;QAChC,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAChE,CAAA;IAED,SAAS,qBAAqB,CAAC,GAAc;QAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;QACvD,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;QACnD,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAA;QAChD,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAA;QAC5C,MAAM,+BAA+B,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CACjG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,OAAO,CACnF,CAAA;QACD,OAAO,CACL,GAAG,CAAC,UAAU,GAAG,CAAC;YAClB,WAAW,KAAK,SAAS;YACzB,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,MAAM;YAC/B,CAAC,+BAA+B,CACjC,CAAA;IACH,CAAC;IAED,SAAS,gBAAgB,CAAC,GAAc;QACtC,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,OAAO,CAAA;IAC9B,CAAC;IAED,SAAS,mBAAmB,CAAC,GAAc;QACzC,MAAM,KAAK,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,CAAC,CAAC,CAAA;QAChC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACxD,CAAC;AACH,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { AnnotationContextType } from '../context/AnnotationProvider';
|
3
|
+
export declare const AnnotatableText: ({ node, annotationContextData }: {
|
4
|
+
node: Node;
|
5
|
+
annotationContextData: AnnotationContextType;
|
6
|
+
}) => React.JSX.Element;
|
7
|
+
//# sourceMappingURL=AnnotatableText.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AnnotatableText.d.ts","sourceRoot":"","sources":["../../../src/components/shared/AnnotatableText.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAMrE,eAAO,MAAM,eAAe,oCAGzB;IACD,IAAI,EAAE,IAAI,CAAA;IACV,qBAAqB,EAAE,qBAAqB,CAAA;CAC7C,sBAqGA,CAAA"}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
import { partition } from 'lodash-es';
|
2
|
+
import React, { useEffect, useRef } from 'react';
|
3
|
+
import { getElementPath, queryAncestors } from '../../dom-utils';
|
4
|
+
import { onMouseDownForAnnotation } from '../grading/examAnnotationUtils';
|
5
|
+
const isExamAnnotation = (annotation) => 'annotationId' in annotation;
|
6
|
+
export const AnnotatableText = ({ node, annotationContextData }) => {
|
7
|
+
const { annotations, onClickAnnotation, setNewAnnotation, setNewAnnotationRef, newAnnotation } = annotationContextData;
|
8
|
+
const path = getElementPath(node);
|
9
|
+
const newAnnotationForThisNode = (newAnnotation === null || newAnnotation === void 0 ? void 0 : newAnnotation.annotationAnchor) === path ? newAnnotation : null;
|
10
|
+
const thisNodeAnnotations = [
|
11
|
+
...((annotations === null || annotations === void 0 ? void 0 : annotations[path]) || []),
|
12
|
+
...(newAnnotationForThisNode ? [newAnnotationForThisNode] : [])
|
13
|
+
];
|
14
|
+
const mouseUpCallback = (annotation) => {
|
15
|
+
var _a;
|
16
|
+
const displayNumber = ((_a = queryAncestors(node.parentElement, 'question')) === null || _a === void 0 ? void 0 : _a.getAttribute('display-number')) || '';
|
17
|
+
setNewAnnotation({ ...annotation, annotationAnchor: path, displayNumber });
|
18
|
+
};
|
19
|
+
function onMouseDown(e) {
|
20
|
+
const target = e.target;
|
21
|
+
const clickIsInPopup = target.closest('.annotation-popup');
|
22
|
+
if (!clickIsInPopup) {
|
23
|
+
setNewAnnotation(null);
|
24
|
+
}
|
25
|
+
onMouseDownForAnnotation(e, mouseUpCallback);
|
26
|
+
}
|
27
|
+
return (React.createElement("span", { onMouseDown: onMouseDown, className: "e-annotatable", key: path }, (thisNodeAnnotations === null || thisNodeAnnotations === void 0 ? void 0 : thisNodeAnnotations.length) > 0 ? markText(node.textContent, thisNodeAnnotations) : node.textContent));
|
28
|
+
function markText(text, annotations) {
|
29
|
+
if (annotations.length === 0) {
|
30
|
+
return [text];
|
31
|
+
}
|
32
|
+
function getMarkedText(annotation) {
|
33
|
+
return text.substring(annotation.startIndex, annotation.startIndex + annotation.length);
|
34
|
+
}
|
35
|
+
const nodes = [];
|
36
|
+
let lastIndex = 0;
|
37
|
+
annotations.sort((a, b) => a.startIndex - b.startIndex);
|
38
|
+
const [validAnnotations, invalidAnnotations] = partition(annotations, annotation => annotation.startIndex >= 0 && annotation.length > 0 && annotation.selectedText === getMarkedText(annotation));
|
39
|
+
if (invalidAnnotations.length > 0) {
|
40
|
+
console.error('Invalid annotations:', invalidAnnotations, invalidAnnotations.map(a => `selectedText (${a.selectedText}) does not match text picked by startIndex and length (${getMarkedText(a)})`));
|
41
|
+
}
|
42
|
+
for (const annotation of validAnnotations) {
|
43
|
+
const markedText = getMarkedText(annotation);
|
44
|
+
// Add unmarked text before this mark
|
45
|
+
if (annotation.startIndex > lastIndex) {
|
46
|
+
nodes.push(text.substring(lastIndex, annotation.startIndex));
|
47
|
+
}
|
48
|
+
// Add marked text
|
49
|
+
const key = isExamAnnotation(annotation) ? annotation.annotationId : annotation.startIndex;
|
50
|
+
nodes.push(annotation.hidden ? (React.createElement("mark", { key: key, className: "e-annotation", "data-annotation-id": isExamAnnotation(annotation) ? annotation.annotationId : '', "data-hidden": "true" })) : (React.createElement(Mark, { key: key, annotation: annotation, markedText: markedText, onClickAnnotation: onClickAnnotation, setNewAnnotationRef: setNewAnnotationRef })));
|
51
|
+
// if annotation is hidden and it starts inside another annotation, we must not increment lastIndex (actually it would be decremented)
|
52
|
+
const hiddenAnnotationInsideCurrentAnnotation = annotation.startIndex < lastIndex && annotation.hidden;
|
53
|
+
if (!hiddenAnnotationInsideCurrentAnnotation) {
|
54
|
+
lastIndex = annotation.startIndex + (annotation.hidden ? 0 : annotation.length);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
// Add remaining unmarked text
|
58
|
+
nodes.push(text.substring(lastIndex));
|
59
|
+
return nodes;
|
60
|
+
}
|
61
|
+
};
|
62
|
+
const Mark = ({ annotation, markedText, onClickAnnotation, setNewAnnotationRef }) => {
|
63
|
+
const markRef = useRef(null);
|
64
|
+
useEffect(() => {
|
65
|
+
if (markRef.current && !isExamAnnotation(annotation)) {
|
66
|
+
setNewAnnotationRef(markRef.current);
|
67
|
+
}
|
68
|
+
}, []);
|
69
|
+
return (React.createElement("mark", { ref: markRef, className: "e-annotation", "data-annotation-id": isExamAnnotation(annotation) ? annotation.annotationId : '', "data-hidden": "false", onClick: e => (isExamAnnotation(annotation) ? onClickAnnotation(e, annotation) : undefined) },
|
70
|
+
markedText,
|
71
|
+
(annotation === null || annotation === void 0 ? void 0 : annotation.markNumber) && React.createElement("sup", { className: "e-annotation", "data-content": annotation === null || annotation === void 0 ? void 0 : annotation.markNumber })));
|
72
|
+
};
|
73
|
+
//# sourceMappingURL=AnnotatableText.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AnnotatableText.js","sourceRoot":"","sources":["../../../src/components/shared/AnnotatableText.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AnnotationPopup.d.ts","sourceRoot":"","sources":["../../../src/components/shared/AnnotationPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAK9D,wBAAgB,eAAe,6BA8E9B"}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import React, { useContext, useEffect, useState } from 'react';
|
2
|
+
import { makeRichText } from 'rich-text-editor';
|
3
|
+
import { AnnotationContext } from '../context/AnnotationProvider';
|
4
|
+
export function AnnotationPopup() {
|
5
|
+
const popupRef = React.createRef();
|
6
|
+
const textAreaRef = React.createRef();
|
7
|
+
const { newAnnotation, setNewAnnotation, newAnnotationRef, onSaveAnnotation } = useContext(AnnotationContext);
|
8
|
+
const [comment, setComment] = useState('');
|
9
|
+
const [saveEnabled, setSaveEnabled] = useState(false);
|
10
|
+
useEffect(() => {
|
11
|
+
if (newAnnotationRef && textAreaRef.current) {
|
12
|
+
showAndPositionElement(newAnnotationRef, popupRef);
|
13
|
+
textAreaRef.current.innerHTML = comment;
|
14
|
+
makeRichText(textAreaRef.current, {
|
15
|
+
locale: 'FI',
|
16
|
+
screenshotSaver: () => Promise.resolve('')
|
17
|
+
}, value => {
|
18
|
+
setComment(value.answerHTML);
|
19
|
+
setSaveEnabled(value.answerHTML.trim().length > 0);
|
20
|
+
});
|
21
|
+
textAreaRef.current.focus();
|
22
|
+
}
|
23
|
+
}, [newAnnotationRef]);
|
24
|
+
if (!newAnnotation) {
|
25
|
+
if (comment) {
|
26
|
+
setComment('');
|
27
|
+
}
|
28
|
+
return null;
|
29
|
+
}
|
30
|
+
const closeEditor = () => {
|
31
|
+
setNewAnnotation(null);
|
32
|
+
closeMathEditor(textAreaRef.current);
|
33
|
+
};
|
34
|
+
function updateComment(annotation, comment) {
|
35
|
+
onSaveAnnotation({ ...annotation, message: comment });
|
36
|
+
closeEditor();
|
37
|
+
}
|
38
|
+
return (React.createElement("div", { className: "annotation-popup", style: { position: 'absolute', opacity: 0 }, ref: popupRef, "data-testid": "annotation-popup" },
|
39
|
+
React.createElement("div", { className: "comment-content", "data-testid": "edit-comment", role: "textbox", "aria-multiline": "true", ref: textAreaRef }),
|
40
|
+
React.createElement("span", { className: "comment-button-area" },
|
41
|
+
React.createElement("span", null,
|
42
|
+
React.createElement("button", { className: "button", onClick: e => {
|
43
|
+
e.stopPropagation();
|
44
|
+
closeMathEditor(textAreaRef.current);
|
45
|
+
updateComment(newAnnotation, comment);
|
46
|
+
}, "data-testid": "save-comment", disabled: !saveEnabled }, "Vastaa"),
|
47
|
+
React.createElement("button", { className: "button text-button", onClick: closeEditor }, "Peru")))));
|
48
|
+
}
|
49
|
+
function showAndPositionElement(mark, popupRef) {
|
50
|
+
const popup = popupRef.current;
|
51
|
+
if (mark && popup) {
|
52
|
+
const style = popup.style;
|
53
|
+
const markRect = mark === null || mark === void 0 ? void 0 : mark.getBoundingClientRect();
|
54
|
+
const popupRect = popup.getBoundingClientRect();
|
55
|
+
const top = markRect.height + markRect.top + window.scrollY;
|
56
|
+
const windowWidth = window.innerWidth;
|
57
|
+
style.top = `${String(top)}px`;
|
58
|
+
style.opacity = '1';
|
59
|
+
const popupHitsWindowRight = markRect.left + popupRect.width > windowWidth;
|
60
|
+
if (popupHitsWindowRight) {
|
61
|
+
style.left = `${markRect.right - popupRect.width}px`;
|
62
|
+
}
|
63
|
+
else {
|
64
|
+
style.left = `${markRect.left}px`;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
function closeMathEditor(element) {
|
69
|
+
// rich-text-editor does not properly support several rich-text-editor instances created at different times.
|
70
|
+
// In order to close math editor that is open, we need to dispatch events like this.
|
71
|
+
element.dispatchEvent(new Event('focus', { bubbles: true, cancelable: true }));
|
72
|
+
element.dispatchEvent(new Event('blur', { bubbles: true, cancelable: true }));
|
73
|
+
}
|
74
|
+
//# sourceMappingURL=AnnotationPopup.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AnnotationPopup.js","sourceRoot":"","sources":["../../../src/components/shared/AnnotationPopup.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { AudioPlaybackError } from '../../../index';
|
3
|
+
declare const AudioPlaybackError: React.FunctionComponent<{
|
4
|
+
error?: AudioPlaybackError;
|
5
|
+
children: React.ReactNode[] | React.ReactNode;
|
6
|
+
}>;
|
7
|
+
export default AudioPlaybackError;
|
8
|
+
//# sourceMappingURL=AudioPlaybackError.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AudioPlaybackError.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/internal/AudioPlaybackError.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGnD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAChD,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;CAC9C,CAkBA,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';
|
2
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
3
|
+
import React from 'react';
|
4
|
+
import ReactCSSTransitionReplace from 'react-css-transition-replace';
|
5
|
+
import { useExamTranslation } from '../../../i18n';
|
6
|
+
const AudioPlaybackError = ({ error, children }) => {
|
7
|
+
const { t } = useExamTranslation();
|
8
|
+
return (
|
9
|
+
// @types/react 18 removed children from implicit props. This component has not explicitly added them yet
|
10
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
11
|
+
// @ts-ignore
|
12
|
+
React.createElement(ReactCSSTransitionReplace, { transitionName: "e-crossfade", transitionEnterTimeout: 500, transitionLeaveTimeout: 500 }, error != null ? (React.createElement("div", { className: "e-color-error", role: "alert" },
|
13
|
+
React.createElement(FontAwesomeIcon, { icon: faExclamationTriangle, className: "e-mrg-r-1" }),
|
14
|
+
t(`audio-errors.${error}`))) : (React.createElement("div", { key: "no-error" }, children))));
|
15
|
+
};
|
16
|
+
export default AudioPlaybackError;
|
17
|
+
//# sourceMappingURL=AudioPlaybackError.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AudioPlaybackError.js","sourceRoot":"","sources":["../../../../src/components/shared/internal/AudioPlaybackError.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,yBAAyB,MAAM,8BAA8B,CAAA;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,kBAAkB,GAGnB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC3B,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAElC,OAAO;IACL,yGAAyG;IACzG,6DAA6D;IAC7D,aAAa;IACb,oBAAC,yBAAyB,IAAC,cAAc,EAAC,aAAa,EAAC,sBAAsB,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,IAC7G,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CACf,6BAAK,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,OAAO;QACzC,oBAAC,eAAe,IAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAC,WAAW,GAAG;QACrE,CAAC,CAAC,gBAAgB,KAAK,EAAW,CAAC,CAChC,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,GAAG,EAAC,UAAU,IAAE,QAAQ,CAAO,CACrC,CACyB,CAC7B,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
@@ -5,13 +5,13 @@ export default memo(function ModalDialog({ onClose, className, children }) {
|
|
5
5
|
useEffect(() => {
|
6
6
|
if (ref.current) {
|
7
7
|
ref.current.showModal();
|
8
|
-
document.
|
8
|
+
document.documentElement.style.overflow = 'hidden';
|
9
9
|
ref.current.addEventListener('close', onClose);
|
10
10
|
}
|
11
11
|
return () => {
|
12
12
|
var _a;
|
13
13
|
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.close();
|
14
|
-
document.
|
14
|
+
document.documentElement.style.overflow = '';
|
15
15
|
};
|
16
16
|
}, []);
|
17
17
|
return (React.createElement("dialog", { ref: ref, className: className }, children));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ModalDialog.js","sourceRoot":"","sources":["../../../../src/components/shared/internal/ModalDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAqB,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAOzE,iDAAiD;AACjD,eAAe,IAAI,CAAC,SAAS,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAA4B;IACjG,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;YACvB,QAAQ,CAAC,
|
1
|
+
{"version":3,"file":"ModalDialog.js","sourceRoot":"","sources":["../../../../src/components/shared/internal/ModalDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAqB,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAOzE,iDAAiD;AACjD,eAAe,IAAI,CAAC,SAAS,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAA4B;IACjG,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;YACvB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAClD,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,GAAG,EAAE;;YACV,MAAA,GAAG,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA;YACpB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAA;QAC9C,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,gCAAQ,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,IACnC,QAAQ,CACF,CACV,CAAA;AACH,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ExamComponentProps } from '../createRenderChildNodes';
|
3
|
+
/** Surrounds an Exam component with a static HTML element.
|
4
|
+
*
|
5
|
+
* @example surround(Question, 'div', {className: 'foobar'})
|
6
|
+
*/
|
7
|
+
export default function surround<K extends keyof JSX.IntrinsicElements>(Component: React.ComponentType<ExamComponentProps>, Tag: K, props?: JSX.IntrinsicElements[K]): React.ComponentType<ExamComponentProps>;
|
8
|
+
//# sourceMappingURL=surround.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"surround.d.ts","sourceRoot":"","sources":["../../src/components/surround.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,EACpE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAClD,GAAG,EAAE,CAAC,EACN,KAAK,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAC/B,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAczC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { getDisplayName } from '../getDisplayName';
|
3
|
+
/** Surrounds an Exam component with a static HTML element.
|
4
|
+
*
|
5
|
+
* @example surround(Question, 'div', {className: 'foobar'})
|
6
|
+
*/
|
7
|
+
export default function surround(Component, Tag, props) {
|
8
|
+
const Wrapped = (componentProps) => {
|
9
|
+
// Can't seem to be able to limit the type to HTML elements that accept children.
|
10
|
+
// So as a hack, type them as any inside the function to make the compiler happy.
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
12
|
+
const TagAsAny = Tag;
|
13
|
+
return (React.createElement(TagAsAny, { ...props },
|
14
|
+
React.createElement(Component, { ...componentProps })));
|
15
|
+
};
|
16
|
+
Wrapped.displayName = `Surround(${getDisplayName(Component)})`;
|
17
|
+
return Wrapped;
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=surround.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"surround.js","sourceRoot":"","sources":["../../src/components/surround.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGlD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,SAAkD,EAClD,GAAM,EACN,KAAgC;IAEhC,MAAM,OAAO,GAAG,CAAC,cAAkC,EAAE,EAAE;QACrD,iFAAiF;QACjF,iFAAiF;QACjF,mEAAmE;QACnE,MAAM,QAAQ,GAAG,GAAU,CAAA;QAC3B,OAAO,CACL,oBAAC,QAAQ,OAAK,KAAK;YACjB,oBAAC,SAAS,OAAK,cAAc,GAAI,CACxB,CACZ,CAAA;IACH,CAAC,CAAA;IACD,OAAO,CAAC,WAAW,GAAG,YAAY,cAAc,CAAC,SAAS,CAAC,GAAG,CAAA;IAC9D,OAAO,OAAO,CAAA;AAChB,CAAC"}
|