@digabi/exam-engine-core 23.4.1 → 23.4.3

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.
Files changed (57) hide show
  1. package/dist/__tests__/playwright/Annotations.test.js +15 -3
  2. package/dist/__tests__/playwright/Annotations.test.js.map +1 -1
  3. package/dist/__tests__/playwright/stories/Annotations.story.d.ts +4 -1
  4. package/dist/__tests__/playwright/stories/Annotations.story.d.ts.map +1 -1
  5. package/dist/__tests__/playwright/stories/Annotations.story.js +6 -1
  6. package/dist/__tests__/playwright/stories/Annotations.story.js.map +1 -1
  7. package/dist/__tests__/playwright/stories/grading-intructions/GradingInstructions.story.d.ts.map +1 -1
  8. package/dist/__tests__/playwright/stories/grading-intructions/GradingInstructions.story.js +1 -1
  9. package/dist/__tests__/playwright/stories/grading-intructions/GradingInstructions.story.js.map +1 -1
  10. package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
  11. package/dist/components/context/AnnotationProvider.d.ts +1 -1
  12. package/dist/components/context/AnnotationProvider.d.ts.map +1 -1
  13. package/dist/components/exam/Exam.d.ts +1 -1
  14. package/dist/components/exam/Exam.d.ts.map +1 -1
  15. package/dist/components/shared/AnnotationPopup.d.ts +1 -1
  16. package/dist/components/shared/AnnotationPopup.d.ts.map +1 -1
  17. package/dist/components/shared/AnnotationPopup.js +10 -4
  18. package/dist/components/shared/AnnotationPopup.js.map +1 -1
  19. package/dist/components/shared/Popup.d.ts +4 -4
  20. package/dist/components/shared/Popup.d.ts.map +1 -1
  21. package/dist/components/shared/Popup.js +16 -13
  22. package/dist/components/shared/Popup.js.map +1 -1
  23. package/dist/main-bundle.js +3 -3
  24. package/dist/main-bundle.js.LICENSE.txt +1 -1
  25. package/package.json +2 -2
  26. package/dist/__tests__/annotations.test.d.ts +0 -2
  27. package/dist/__tests__/annotations.test.d.ts.map +0 -1
  28. package/dist/__tests__/annotations.test.js +0 -306
  29. package/dist/__tests__/annotations.test.js.map +0 -1
  30. package/dist/assets/closeButton.svg +0 -1
  31. package/dist/assets/collapse.svg +0 -12
  32. package/dist/assets/expand.svg +0 -12
  33. package/dist/assets/helpButton.svg +0 -9
  34. package/dist/assets/redoButton.svg +0 -5
  35. package/dist/assets/undoButton.svg +0 -5
  36. package/dist/components/results/DNDAnswerContainer.d.ts +0 -4
  37. package/dist/components/results/DNDAnswerContainer.d.ts.map +0 -1
  38. package/dist/components/results/DNDAnswerContainer.js +0 -22
  39. package/dist/components/results/DNDAnswerContainer.js.map +0 -1
  40. package/dist/eslint.config.d.ts +0 -22
  41. package/dist/eslint.config.d.ts.map +0 -1
  42. package/dist/eslint.config.js +0 -31
  43. package/dist/eslint.config.js.map +0 -1
  44. package/dist/i18n/exam_titles_fi-FI.d.ts +0 -46
  45. package/dist/i18n/exam_titles_fi-FI.d.ts.map +0 -1
  46. package/dist/i18n/exam_titles_fi-FI.js +0 -46
  47. package/dist/i18n/exam_titles_fi-FI.js.map +0 -1
  48. package/dist/i18n/exam_titles_fi-FI.json +0 -45
  49. package/dist/i18n/exam_titles_sv-FI.d.ts +0 -46
  50. package/dist/i18n/exam_titles_sv-FI.d.ts.map +0 -1
  51. package/dist/i18n/exam_titles_sv-FI.js +0 -46
  52. package/dist/i18n/exam_titles_sv-FI.js.map +0 -1
  53. package/dist/i18n/exam_titles_sv-FI.json +0 -45
  54. package/dist/i18n/exams.d.ts +0 -11
  55. package/dist/i18n/exams.d.ts.map +0 -1
  56. package/dist/i18n/exams.js +0 -10
  57. package/dist/i18n/exams.js.map +0 -1
@@ -23,7 +23,7 @@
23
23
  */
24
24
 
25
25
  /*!
26
- * focus-trap 7.6.2
26
+ * focus-trap 7.6.4
27
27
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
28
28
  */
29
29
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digabi/exam-engine-core",
3
- "version": "23.4.1",
3
+ "version": "23.4.3",
4
4
  "main": "dist/main-bundle.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "author": "Matriculation Examination Board, Finland",
@@ -59,5 +59,5 @@
59
59
  "webpack-bundle-analyzer": "^4.1.0",
60
60
  "webpack-cli": "^6.0.0"
61
61
  },
62
- "gitHead": "52b160cc187403515f3f2fb570f60e3bcc09b334"
62
+ "gitHead": "bc4e286f59492ec12f9d9fac21c069a612da0977"
63
63
  }
@@ -1,2 +0,0 @@
1
- import '@testing-library/jest-dom';
2
- //# sourceMappingURL=annotations.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"annotations.test.d.ts","sourceRoot":"","sources":["../../__tests__/annotations.test.tsx"],"names":[],"mappings":"AAEA,OAAO,2BAA2B,CAAA"}
@@ -1,306 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const exam_engine_exams_1 = require("@digabi/exam-engine-exams");
7
- const exam_engine_mastering_1 = require("@digabi/exam-engine-mastering");
8
- require("@testing-library/jest-dom");
9
- const react_1 = require("@testing-library/react");
10
- const user_event_1 = __importDefault(require("@testing-library/user-event"));
11
- const fs_1 = require("fs");
12
- const path_1 = __importDefault(require("path"));
13
- const react_2 = __importDefault(require("react"));
14
- const parseExam_1 = __importDefault(require("../dist/parser/parseExam"));
15
- const Attachments_1 = __importDefault(require("../src/components/attachments/Attachments"));
16
- const Exam_1 = __importDefault(require("../src/components/exam/Exam"));
17
- const GradingInstructions_1 = __importDefault(require("../src/components/grading-instructions/GradingInstructions"));
18
- const examServerApi_1 = require("./examServerApi");
19
- const lodash_1 = require("lodash");
20
- class IntersectionObserver {
21
- constructor() {
22
- this.root = null;
23
- this.rootMargin = '';
24
- this.thresholds = [];
25
- this.disconnect = () => null;
26
- this.observe = () => null;
27
- this.takeRecords = () => [];
28
- this.unobserve = () => null;
29
- }
30
- }
31
- window.IntersectionObserver = IntersectionObserver;
32
- global.IntersectionObserver = IntersectionObserver;
33
- window.scrollTo = jest.fn();
34
- document.execCommand = jest.fn();
35
- describe('Annotations', () => {
36
- let doc;
37
- beforeEach(async () => {
38
- window.getSelection = jest.fn();
39
- const examPath = (0, exam_engine_exams_1.resolveExam)('FF/FF.xml');
40
- const resolveAttachment = (filename) => path_1.default.resolve(path_1.default.dirname(examPath), 'attachments', filename);
41
- const source = await fs_1.promises.readFile(examPath, 'utf-8');
42
- const results = await (0, exam_engine_mastering_1.masterExam)(source, () => '', (0, exam_engine_mastering_1.getMediaMetadataFromLocalFile)(resolveAttachment), {
43
- removeCorrectAnswers: false
44
- });
45
- doc = (0, parseExam_1.default)(results[0].xml, true);
46
- });
47
- afterEach(() => {
48
- ;
49
- window.getSelection.mockReset();
50
- window.scrollTo.mockReset();
51
- document.execCommand.mockReset();
52
- });
53
- // Do NOT modify the line breaks and indentations below
54
- const defaultTextToAnnotate = `
55
- Valitse jokin pienempi tai suurempi yhteisö – esimerkiksi jokin koulu, katsomuksellinen ryhmä tai valtio –
56
- ja pohdi, mikä ero valitsemassasi yhteisössä on moraalin ja tapojen välillä.
57
- `;
58
- const defaultAnnotationAnchor = 'e:exam:0 > e:section:1 > e:question:2 > e:question-instruction:1 > span:0 > p:1 > #text:0';
59
- it('popup is rendered', async () => {
60
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: [], onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
61
- await annotateText(exam, defaultAnnotationAnchor);
62
- expect(exam.getByTestId('e-popup')).toBeVisible();
63
- });
64
- it('popup is not rendered if annotation props are not passed', async () => {
65
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps() }));
66
- const text = 'Sekä moraali että tavat pyrkivät ohjaamaan ihmisten käyttäytymistä.';
67
- const textElement = exam.getByText(text);
68
- mockWindowSelection(text, textElement, text.length);
69
- await user_event_1.default.click(textElement);
70
- expect(exam.queryByTestId('e-popup')).not.toBeInTheDocument();
71
- });
72
- it('callback is called when annotation is saved', async () => {
73
- const saveAnnotationMock = jest.fn();
74
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: [], onClickAnnotation: () => { }, onSaveAnnotation: saveAnnotationMock }));
75
- await annotateText(exam, defaultAnnotationAnchor);
76
- const textbox = exam.container.querySelector('.comment-content');
77
- react_1.fireEvent.input(textbox, {
78
- target: { innerText: 'New comment', innerHTML: 'New comment' }
79
- });
80
- await user_event_1.default.click(exam.getByText('Tallenna'));
81
- const annotationPart = {
82
- annotationAnchor: defaultAnnotationAnchor,
83
- selectedText: defaultTextToAnnotate,
84
- startIndex: 0,
85
- length: defaultTextToAnnotate.length
86
- };
87
- expect(saveAnnotationMock).toHaveBeenCalledTimes(1);
88
- expect(saveAnnotationMock).toHaveBeenCalledWith({
89
- annotationParts: [annotationPart],
90
- displayNumber: '2',
91
- selectedText: defaultTextToAnnotate
92
- }, 'New comment');
93
- });
94
- it('popup field is empty when creating new annotation', async () => {
95
- var _a;
96
- const annotationAnchor_7_1 = 'e:exam:0 > e:section:2 > e:question:7 > e:question:7.1 > e:question-title:0 > span:0 > #text:0';
97
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: [], onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
98
- await annotateText(exam, defaultAnnotationAnchor);
99
- const textbox = exam.container.querySelector('.comment-content');
100
- react_1.fireEvent.input(textbox, {
101
- target: { innerText: 'New Value', innerHTML: 'New Value' }
102
- });
103
- await user_event_1.default.click(exam.getByText('Tallenna'));
104
- // text picked by getMarkedText includes leading/trailing whitespace, so they must be here too
105
- await annotateText(exam, annotationAnchor_7_1);
106
- expect((_a = exam.container.querySelector('.comment-content')) === null || _a === void 0 ? void 0 : _a.textContent).toHaveLength(0);
107
- });
108
- it('callback is called when annotation is clicked', async () => {
109
- const clickAnnotationMock = jest.fn();
110
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: createAnnotations([{ id: 1, startIndex: 5, selectedText: 'moraali että' }]), onClickAnnotation: clickAnnotationMock, onSaveAnnotation: () => { } }));
111
- await user_event_1.default.click(exam.container.querySelector('[data-annotation-id="1"]'));
112
- const clickedAnnotation = {
113
- annotationAnchor: defaultAnnotationAnchor,
114
- annotationId: 1,
115
- hidden: false,
116
- length: 12,
117
- selectedText: 'moraali että',
118
- startIndex: 5,
119
- markNumber: 1
120
- };
121
- expect(clickAnnotationMock).toHaveBeenCalledTimes(1);
122
- expect(clickAnnotationMock).toHaveBeenCalledWith(expect.anything(), clickedAnnotation);
123
- });
124
- it('annotations are added to dom when provided', () => {
125
- var _a, _b;
126
- const annotationProps = {
127
- annotations: createAnnotations([
128
- { id: 1, startIndex: 27, selectedText: 'pienempi' },
129
- { id: 3, startIndex: 166, selectedText: 'yhteisössä' }
130
- ]),
131
- onClickAnnotation: () => { },
132
- onSaveAnnotation: () => { }
133
- };
134
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
135
- expect(exam.container.querySelector('[data-annotation-id="1"]')).toBeInTheDocument();
136
- expect((_a = exam.container.querySelector('[data-annotation-id="1"]')) === null || _a === void 0 ? void 0 : _a.textContent).toBe('pienempi');
137
- expect(exam.container.querySelector('[data-annotation-id="1"] sup')).toHaveAttribute('data-content', '1');
138
- expect(exam.container.querySelector('[data-annotation-id="3"]')).toBeInTheDocument();
139
- expect((_b = exam.container.querySelector('[data-annotation-id="3"]')) === null || _b === void 0 ? void 0 : _b.textContent).toBe('yhteisössä');
140
- expect(exam.container.querySelector('[data-annotation-id="3"] sup')).toHaveAttribute('data-content', '2');
141
- });
142
- it('"August 2024" annotations are added to dom when provided', () => {
143
- var _a;
144
- /** the difference of startIndex between an "August 2024 annotation" and a normal annotation
145
- * (in this case, but the index varies depending on the exam content)
146
- */
147
- const startIndexDifference = 24;
148
- const annotationProps = {
149
- annotations: createAnnotations([{ id: 1, startIndex: 166 - startIndexDifference, selectedText: 'yhteisössä' }]),
150
- onClickAnnotation: () => { },
151
- onSaveAnnotation: () => { }
152
- };
153
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
154
- expect(exam.container.querySelector('[data-annotation-id="1"]')).toBeInTheDocument();
155
- expect((_a = exam.container.querySelector('[data-annotation-id="1"]')) === null || _a === void 0 ? void 0 : _a.textContent).toBe('yhteisössä');
156
- expect(exam.container.querySelector('[data-annotation-id="1"] sup')).toHaveAttribute('data-content', '1');
157
- });
158
- it('if two annotations have same id, only latter renders <sup>', () => {
159
- const annotationProps = {
160
- annotations: createAnnotations([
161
- { id: 1, startIndex: 71, selectedText: 'jokin' },
162
- { id: 1, startIndex: 77, selectedText: 'koulu' },
163
- { id: 2, startIndex: 142, selectedText: 'mikä' },
164
- { id: 2, startIndex: 147, selectedText: 'ero' }
165
- ]),
166
- onClickAnnotation: () => { },
167
- onSaveAnnotation: () => { }
168
- };
169
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
170
- const marks = (id) => exam.container.querySelectorAll(`.e-annotation[data-annotation-id="${id}"]`);
171
- const marksId1 = marks('1');
172
- const marksId2 = marks('2');
173
- expect(marksId1[0].textContent).toBe('jokin');
174
- expect(marksId1[0].querySelector('sup')).not.toBeInTheDocument();
175
- expect(marksId1[1].textContent).toBe('koulu');
176
- expect(marksId1[1]).toBeInTheDocument();
177
- expect(marksId1[1].querySelector('sup')).toHaveAttribute('data-content', '1');
178
- expect(marksId2[0].textContent).toBe('mikä');
179
- expect(marksId2[0].querySelector('sup')).not.toBeInTheDocument();
180
- expect(marksId2[1].textContent).toBe('ero');
181
- expect(marksId2[1]).toBeInTheDocument();
182
- expect(marksId2[1].querySelector('sup')).toHaveAttribute('data-content', '2');
183
- });
184
- it('hidden annotation works correctly', () => {
185
- var _a, _b;
186
- const annotations = createAnnotations([{ id: 1, startIndex: 59, selectedText: 'esimerkiksi', hidden: true }]);
187
- const annotationProps = {
188
- annotations,
189
- onClickAnnotation: () => { },
190
- onSaveAnnotation: () => { }
191
- };
192
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
193
- expect(exam.container.querySelector('[data-annotation-id="1"]')).toBeInTheDocument();
194
- expect(exam.container.querySelector('[data-annotation-id="1"] sup')).not.toBeInTheDocument();
195
- expect((_b = (_a = exam.container.querySelector('[data-annotation-id="1"]')) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.textContent).toBe(defaultTextToAnnotate);
196
- });
197
- it('annotations can not overlap — overlapping annotations are not rendered', () => {
198
- var _a, _b, _c, _d;
199
- const annotations = createAnnotations([
200
- { id: 1, startIndex: 59, selectedText: 'esimerkiksi' },
201
- { id: 2, startIndex: 62, selectedText: 'merkiksi jo' },
202
- { id: 3, startIndex: 65, selectedText: 'kiksi jokin' },
203
- { id: 4, startIndex: 71, selectedText: 'jokin koulu' } // does NOT overlap with the first annotation
204
- ]);
205
- const annotationProps = {
206
- annotations,
207
- onClickAnnotation: () => { },
208
- onSaveAnnotation: () => { }
209
- };
210
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
211
- expect(exam.container.querySelector('[data-annotation-id="1"]')).toBeInTheDocument();
212
- expect(exam.container.querySelector('[data-annotation-id="1"] sup')).toBeInTheDocument();
213
- expect((_a = exam.container.querySelector('[data-annotation-id="1"]')) === null || _a === void 0 ? void 0 : _a.textContent).toBe('esimerkiksi');
214
- expect(exam.container.querySelector('[data-annotation-id="2"]')).toBeInTheDocument();
215
- expect(exam.container.querySelector('[data-annotation-id="2"] sup')).not.toBeInTheDocument();
216
- expect((_b = exam.container.querySelector('[data-annotation-id="2"]')) === null || _b === void 0 ? void 0 : _b.textContent).toBe('');
217
- expect(exam.container.querySelector('[data-annotation-id="3"]')).toBeInTheDocument();
218
- expect(exam.container.querySelector('[data-annotation-id="3"] sup')).not.toBeInTheDocument();
219
- expect((_c = exam.container.querySelector('[data-annotation-id="2"]')) === null || _c === void 0 ? void 0 : _c.textContent).toBe('');
220
- expect(exam.container.querySelector('[data-annotation-id="4"]')).toBeInTheDocument();
221
- expect(exam.container.querySelector('[data-annotation-id="4"]')).toBeInTheDocument();
222
- expect((_d = exam.container.querySelector('[data-annotation-id="4"]')) === null || _d === void 0 ? void 0 : _d.textContent).toBe('jokin koulu');
223
- });
224
- it('grading instructions can be annotated', async () => {
225
- const gi = (0, react_1.render)(react_2.default.createElement(GradingInstructions_1.default, { ...getCommonProps(), annotations: [], onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
226
- await annotateText(gi, defaultAnnotationAnchor);
227
- expect(gi.getByTestId('e-popup')).toBeVisible();
228
- });
229
- it('attachments can be annotated', async () => {
230
- const annotationAnchor_7_A = 'e:exam:0 > e:section:2 > e:question:7 > e:external-material:3 > e:attachment:0 > span:1 > p:3 > #text:0';
231
- const gi = (0, react_1.render)(react_2.default.createElement(Attachments_1.default, { ...getCommonProps(), annotations: [], onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
232
- await annotateText(gi, annotationAnchor_7_A);
233
- expect(gi.getByTestId('e-popup')).toBeVisible();
234
- });
235
- function createAnnotations(annotations) {
236
- const annotationsById = (0, lodash_1.groupBy)(annotations, 'id');
237
- return Object.keys(annotationsById).map((id, index) => {
238
- const annotationParts = annotationsById[id];
239
- return {
240
- annotationId: Number(id),
241
- selectedText: annotations.map(a => a.selectedText).join(' '),
242
- type: 'text',
243
- displayNumber: '2',
244
- hidden: annotationParts.some(a => a.hidden),
245
- markNumber: index + 1,
246
- annotationParts: annotationParts.map(p => ({
247
- startIndex: p.startIndex,
248
- length: p.selectedText.length,
249
- annotationAnchor: defaultAnnotationAnchor,
250
- selectedText: p.selectedText,
251
- annotationId: Number(id)
252
- }))
253
- };
254
- });
255
- }
256
- async function annotateText(exam, elementAnchor) {
257
- const textElement = exam.getByTestId(elementAnchor);
258
- const fullText = (textElement === null || textElement === void 0 ? void 0 : textElement.textContent) || '';
259
- const annotationLength = fullText.length;
260
- const text = fullText.substring(0, annotationLength);
261
- mockWindowSelection(text, textElement, annotationLength);
262
- await user_event_1.default.click(textElement);
263
- }
264
- function mockWindowSelection(text = 'mocked selection text', element, length) {
265
- ;
266
- window.getSelection.mockImplementation(() => ({
267
- toString: () => text,
268
- rangeCount: 1,
269
- anchorNode: element.firstChild,
270
- focusNode: element.firstChild,
271
- getRangeAt: jest.fn().mockReturnValue({
272
- startOffset: 0,
273
- endOffset: length,
274
- startContainer: element,
275
- endContainer: element,
276
- cloneContents: jest.fn().mockReturnValue({ children: [], childNodes: [] })
277
- })
278
- }));
279
- }
280
- function getCommonProps() {
281
- return {
282
- doc,
283
- answers: [],
284
- attachmentsURL: '/attachments',
285
- resolveAttachment: (filename) => `/attachments/${encodeURIComponent(filename)}`
286
- };
287
- }
288
- function getExamProps() {
289
- const examProps = {
290
- ...getCommonProps(),
291
- casStatus: 'forbidden',
292
- examServerApi: examServerApi_1.examServerApi,
293
- restrictedAudioPlaybackStats: [],
294
- studentName: '[Kokelaan Nimi]',
295
- showUndoView: false,
296
- undoViewProps: {
297
- questionId: 0,
298
- title: '',
299
- close: () => undefined,
300
- restoreAnswer: () => undefined
301
- }
302
- };
303
- return examProps;
304
- }
305
- });
306
- //# sourceMappingURL=annotations.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"annotations.test.js","sourceRoot":"","sources":["../../__tests__/annotations.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
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>
@@ -1,12 +0,0 @@
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>
@@ -1,12 +0,0 @@
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>
@@ -1,9 +0,0 @@
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>
@@ -1,5 +0,0 @@
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>
@@ -1,5 +0,0 @@
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>
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { ExamComponentProps } from '../..';
3
- export declare const DNDAnswerContainer: ({ element, renderChildNodes }: ExamComponentProps) => React.JSX.Element;
4
- //# sourceMappingURL=DNDAnswerContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DNDAnswerContainer.d.ts","sourceRoot":"","sources":["../../../src/components/results/DNDAnswerContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAO1C,eAAO,MAAM,kBAAkB,kCAAmC,kBAAkB,sBAuCnF,CAAA"}
@@ -1,22 +0,0 @@
1
- import React, { useContext } from 'react';
2
- import { query, queryAll } from '../../dom-utils';
3
- import { ResultsContext } from '../context/ResultsContext';
4
- import { getAnswerOptionIdsByQuestionId, getAnswerOptionsByOptionId } from '../exam/DNDAnswerContainer';
5
- import { DNDTitleAndDroppable } from '../shared/DNDTitleAndDroppable';
6
- import { CorrectDNDAnswers } from './CorrectDNDAnswers';
7
- export const DNDAnswerContainer = ({ element, renderChildNodes }) => {
8
- const { answersByQuestionId, gradingStructure } = useContext(ResultsContext);
9
- const answerOptionIdsByQuestionId = getAnswerOptionIdsByQuestionId(element, answersByQuestionId);
10
- const answerOptionsByOptionId = getAnswerOptionsByOptionId(element);
11
- const dndAnswersWithQuestion = queryAll(element, 'dnd-answer').filter(e => !!query(e, 'dnd-answer-title'));
12
- return (React.createElement("div", { className: "e-dnd-answer-container" }, dndAnswersWithQuestion.map(element => {
13
- var _a;
14
- const questionId = element.getAttribute('question-id');
15
- const itemIds = answerOptionIdsByQuestionId[questionId] || [];
16
- const answerOptionElements = (_a = (answerOptionIdsByQuestionId[questionId] || [])) === null || _a === void 0 ? void 0 : _a.map(id => (answerOptionsByOptionId === null || answerOptionsByOptionId === void 0 ? void 0 : answerOptionsByOptionId[id]) || null).filter(Boolean);
17
- return (React.createElement(React.Fragment, { key: questionId },
18
- React.createElement(DNDTitleAndDroppable, { key: questionId, element: element, answerOptionElements: answerOptionElements, renderChildNodes: renderChildNodes, itemIds: itemIds, page: "results" }),
19
- gradingStructure && (React.createElement(CorrectDNDAnswers, { key: `${questionId}-correct`, element: element, renderChildNodes: renderChildNodes, answerOptionsById: answerOptionsByOptionId }))));
20
- })));
21
- };
22
- //# sourceMappingURL=DNDAnswerContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DNDAnswerContainer.js","sourceRoot":"","sources":["../../../src/components/results/DNDAnswerContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAsB,EAAE,EAAE;IACtF,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC5E,MAAM,2BAA2B,GAAG,8BAA8B,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;IAChG,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,sBAAsB,GAAG,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAE1G,OAAO,CACL,6BAAK,SAAS,EAAC,wBAAwB,IACpC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAE,CAAA;QACvD,MAAM,OAAO,GAAG,2BAA2B,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;QAC7D,MAAM,oBAAoB,GAAG,MAAA,CAAC,2BAA2B,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,0CACxE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAG,EAAE,CAAC,KAAI,IAAI,EAChD,MAAM,CAAC,OAAO,CAAC,CAAA;QAElB,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,UAAU;YAC7B,oBAAC,oBAAoB,IACnB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,SAAS,GACd;YAED,gBAAgB,IAAI,CACnB,oBAAC,iBAAiB,IAChB,GAAG,EAAE,GAAG,UAAU,UAAU,EAC5B,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,uBAAuB,GAC1C,CACH,CACc,CAClB,CAAA;IACH,CAAC,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -1,22 +0,0 @@
1
- declare const _exports: ({
2
- parserOptions: {
3
- project: string;
4
- tsconfigRootDir: string;
5
- };
6
- rules: {
7
- 'no-restricted-imports': (string | {
8
- paths: ({
9
- name: string;
10
- message: string;
11
- } | {
12
- name: string;
13
- importNames: string[];
14
- message: string;
15
- })[];
16
- })[];
17
- };
18
- } | {
19
- ignores: string[];
20
- })[];
21
- export = _exports;
22
- //# sourceMappingURL=eslint.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eslint.config.d.ts","sourceRoot":"","sources":["../src/eslint.config.js"],"names":[],"mappings":""}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- module.exports = [
3
- {
4
- parserOptions: {
5
- project: '../tsconfig.json',
6
- tsconfigRootDir: __dirname
7
- },
8
- rules: {
9
- 'no-restricted-imports': [
10
- 'error',
11
- {
12
- paths: [
13
- {
14
- name: 'lodash',
15
- message: "Please use import * as _ from 'lodash-es' in the core module for better tree shaking."
16
- },
17
- {
18
- name: 'react-i18next',
19
- importNames: ['useTranslation', 'Translation'],
20
- message: 'Please use the `useExamTranslation` wrapper instead.'
21
- }
22
- ]
23
- }
24
- ]
25
- }
26
- },
27
- {
28
- ignores: ['dist/**/*', 'node_modules/**/*']
29
- }
30
- ];
31
- //# sourceMappingURL=eslint.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../src/eslint.config.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf;QACE,aAAa,EAAE;YACb,OAAO,EAAE,kBAAkB;YAC3B,eAAe,EAAE,SAAS;SAC3B;QACD,KAAK,EAAE;YACL,uBAAuB,EAAE;gBACvB,OAAO;gBACP;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,uFAAuF;yBACjG;wBACD;4BACE,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;4BAC9C,OAAO,EAAE,sDAAsD;yBAChE;qBACF;iBACF;aACF;SACF;KACF;IACD;QACE,OAAO,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;KAC5C;CACF,CAAA"}
@@ -1,46 +0,0 @@
1
- export declare const examTitlesFi: {
2
- codes: {
3
- A5: string;
4
- A_E: string;
5
- A_X: string;
6
- BA: string;
7
- BB: string;
8
- BI: string;
9
- DC: string;
10
- EA: string;
11
- EC: string;
12
- ET: string;
13
- FA: string;
14
- FC: string;
15
- FF: string;
16
- FY: string;
17
- GC: string;
18
- GE: string;
19
- HI: string;
20
- I: string;
21
- IC: string;
22
- KE: string;
23
- L1: string;
24
- L7: string;
25
- M: string;
26
- N: string;
27
- PA: string;
28
- PC: string;
29
- PS: string;
30
- QC: string;
31
- SA: string;
32
- SC: string;
33
- TC: string;
34
- TE: string;
35
- UE: string;
36
- UO: string;
37
- VA: string;
38
- VC: string;
39
- W: string;
40
- YH: string;
41
- Z: string;
42
- };
43
- 'hearing-impaired': string;
44
- 'visually-impaired': string;
45
- };
46
- //# sourceMappingURL=exam_titles_fi-FI.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exam_titles_fi-FI.d.ts","sourceRoot":"","sources":["../../src/i18n/exam_titles_fi-FI.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CxB,CAAA"}
@@ -1,46 +0,0 @@
1
- export const examTitlesFi = {
2
- codes: {
3
- A5: 'FI – Suomi toisena kielenä ja kirjallisuus',
4
- A_E: 'FI – Äidinkieli ja kirjallisuus, kirjoitustaidon koe',
5
- A_X: 'FI – Äidinkieli ja kirjallisuus, lukutaidon koe',
6
- BA: 'FI – Ruotsi, pitkä oppimäärä',
7
- BB: 'FI – Ruotsi, keskipitkä oppimäärä',
8
- BI: 'FI – Biologia',
9
- DC: 'FI – Pohjoissaame, lyhyt oppimäärä',
10
- EA: 'FI – Englanti, pitkä oppimäärä',
11
- EC: 'FI – Englanti, lyhyt oppimäärä',
12
- ET: 'FI – Elämänkatsomustieto',
13
- FA: 'FI – Ranska, pitkä oppimäärä',
14
- FC: 'FI – Ranska, lyhyt oppimäärä',
15
- FF: 'FI – Filosofia',
16
- FY: 'FI – Fysiikka',
17
- GC: 'FI – Portugali, lyhyt oppimäärä',
18
- GE: 'FI – Maantiede',
19
- HI: 'FI – Historia',
20
- I: 'Eenikielâ já kirjálâšvuotâ, anarâškielâ',
21
- IC: 'FI – Inarinsaame, lyhyt oppimäärä',
22
- KE: 'FI – Kemia',
23
- L1: 'FI – Latina, lyhyt oppimäärä',
24
- L7: 'FI – Latina, laajempi lyhyt oppimäärä',
25
- M: 'FI – Matematiikka, pitkä oppimäärä',
26
- N: 'FI – Matematiikka, lyhyt oppimäärä',
27
- PA: 'FI – Espanja, pitkä oppimäärä',
28
- PC: 'FI – Espanja, lyhyt oppimäärä',
29
- PS: 'FI – Psykologia',
30
- QC: 'FI – Koltansaame, lyhyt oppimäärä',
31
- SA: 'FI – Saksa, pitkä oppimäärä',
32
- SC: 'FI – Saksa, lyhyt oppimäärä',
33
- TC: 'FI – Italia, lyhyt oppimäärä',
34
- TE: 'FI – Terveystieto',
35
- UE: 'FI – Evankelisluterilainen uskonto',
36
- UO: 'FI – Ortodoksinen uskonto',
37
- VA: 'FI – Venäjä, pitkä oppimäärä',
38
- VC: 'FI – Venäjä, lyhyt oppimäärä',
39
- W: 'Jieʹnnǩiõll da ǩeʹrjjlažvuõtt, sääʹmǩiõll',
40
- YH: 'FI – Yhteiskuntaoppi',
41
- Z: 'Eatnigiella ja girjjálašvuohta, davvisámegiella'
42
- },
43
- 'hearing-impaired': '(kuulovammaiset)',
44
- 'visually-impaired': '(näkövammaiset)'
45
- };
46
- //# sourceMappingURL=exam_titles_fi-FI.js.map