@digabi/exam-engine-core 23.13.6 → 23.13.8-alpha.2

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 (108) hide show
  1. package/dist/__tests__/playwright/exam/AudioAnswer.test.d.ts +2 -0
  2. package/dist/__tests__/playwright/exam/AudioAnswer.test.d.ts.map +1 -0
  3. package/dist/__tests__/playwright/exam/AudioAnswer.test.js +111 -0
  4. package/dist/__tests__/playwright/exam/AudioAnswer.test.js.map +1 -0
  5. package/dist/__tests__/playwright/exam/AudioPlayer.test.d.ts +2 -0
  6. package/dist/__tests__/playwright/exam/AudioPlayer.test.d.ts.map +1 -0
  7. package/dist/__tests__/playwright/exam/AudioPlayer.test.js +70 -0
  8. package/dist/__tests__/playwright/exam/AudioPlayer.test.js.map +1 -0
  9. package/dist/__tests__/playwright/pages/AudioPlayer.page.d.ts +12 -0
  10. package/dist/__tests__/playwright/pages/AudioPlayer.page.d.ts.map +1 -0
  11. package/dist/__tests__/playwright/pages/AudioPlayer.page.js +15 -0
  12. package/dist/__tests__/playwright/pages/AudioPlayer.page.js.map +1 -0
  13. package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.d.ts +5 -0
  14. package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.d.ts.map +1 -0
  15. package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.js +15 -0
  16. package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.js.map +1 -0
  17. package/dist/__tests__/results/ResultsContext.test.js +1 -1
  18. package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
  19. package/dist/components/context/AudioRecorderContext.d.ts +8 -0
  20. package/dist/components/context/AudioRecorderContext.d.ts.map +1 -0
  21. package/dist/components/context/AudioRecorderContext.js +7 -0
  22. package/dist/components/context/AudioRecorderContext.js.map +1 -0
  23. package/dist/components/exam/AudioAnswer.d.ts +4 -1
  24. package/dist/components/exam/AudioAnswer.d.ts.map +1 -1
  25. package/dist/components/exam/AudioAnswer.js +13 -19
  26. package/dist/components/exam/AudioAnswer.js.map +1 -1
  27. package/dist/components/exam/Exam.d.ts.map +1 -1
  28. package/dist/components/exam/Exam.js +2 -1
  29. package/dist/components/exam/Exam.js.map +1 -1
  30. package/dist/components/exam/internal/AudioRecorder.d.ts +2 -2
  31. package/dist/components/exam/internal/AudioRecorder.d.ts.map +1 -1
  32. package/dist/components/exam/internal/AudioRecorder.js +65 -31
  33. package/dist/components/exam/internal/AudioRecorder.js.map +1 -1
  34. package/dist/components/grading/GradingAnswer.d.ts.map +1 -1
  35. package/dist/components/grading/GradingAnswer.js +2 -1
  36. package/dist/components/grading/GradingAnswer.js.map +1 -1
  37. package/dist/components/results/AudioAnswer.d.ts.map +1 -1
  38. package/dist/components/results/AudioAnswer.js +2 -1
  39. package/dist/components/results/AudioAnswer.js.map +1 -1
  40. package/dist/components/shared/Audio.d.ts.map +1 -1
  41. package/dist/components/shared/Audio.js +2 -2
  42. package/dist/components/shared/Audio.js.map +1 -1
  43. package/dist/components/shared/internal/AudioPlayer.d.ts +9 -0
  44. package/dist/components/shared/internal/AudioPlayer.d.ts.map +1 -0
  45. package/dist/components/shared/internal/AudioPlayer.js +77 -0
  46. package/dist/components/shared/internal/AudioPlayer.js.map +1 -0
  47. package/dist/components/shared/internal/RestrictedAudioPlayer.d.ts.map +1 -1
  48. package/dist/components/shared/internal/RestrictedAudioPlayer.js +1 -1
  49. package/dist/components/shared/internal/RestrictedAudioPlayer.js.map +1 -1
  50. package/dist/i18n/fi-FI.d.ts +13 -3
  51. package/dist/i18n/fi-FI.d.ts.map +1 -1
  52. package/dist/i18n/fi-FI.js +13 -3
  53. package/dist/i18n/fi-FI.js.map +1 -1
  54. package/dist/i18n/sv-FI.d.ts.map +1 -1
  55. package/dist/i18n/sv-FI.js +13 -3
  56. package/dist/i18n/sv-FI.js.map +1 -1
  57. package/dist/main-bundle.js +2 -2
  58. package/dist/main.css +1 -1
  59. package/dist/types/ExamServerAPI.d.ts +2 -0
  60. package/dist/types/ExamServerAPI.d.ts.map +1 -1
  61. package/package.json +2 -2
  62. package/dist/__tests__/annotations.test.d.ts +0 -2
  63. package/dist/__tests__/annotations.test.d.ts.map +0 -1
  64. package/dist/__tests__/annotations.test.js +0 -217
  65. package/dist/__tests__/annotations.test.js.map +0 -1
  66. package/dist/assets/NotoMono.ttf +0 -0
  67. package/dist/assets/NotoSans-Bold.ttf +0 -0
  68. package/dist/assets/NotoSans-BoldItalic.ttf +0 -0
  69. package/dist/assets/NotoSans-Italic.ttf +0 -0
  70. package/dist/assets/NotoSans-Light.ttf +0 -0
  71. package/dist/assets/NotoSans-LightItalic.ttf +0 -0
  72. package/dist/assets/NotoSans-Regular.ttf +0 -0
  73. package/dist/assets/NotoSans-SemiBold.ttf +0 -0
  74. package/dist/assets/NotoSans-SemiBoldItalic.ttf +0 -0
  75. package/dist/assets/closeButton.svg +0 -1
  76. package/dist/assets/collapse.svg +0 -12
  77. package/dist/assets/expand.svg +0 -12
  78. package/dist/assets/helpButton.svg +0 -9
  79. package/dist/assets/redoButton.svg +0 -5
  80. package/dist/assets/undoButton.svg +0 -5
  81. package/dist/components/context/AudioContext.d.ts +0 -9
  82. package/dist/components/context/AudioContext.d.ts.map +0 -1
  83. package/dist/components/context/AudioContext.js +0 -9
  84. package/dist/components/context/AudioContext.js.map +0 -1
  85. package/dist/components/exam/ExamineExam.d.ts +0 -5
  86. package/dist/components/exam/ExamineExam.d.ts.map +0 -1
  87. package/dist/components/exam/ExamineExam.js +0 -20
  88. package/dist/components/exam/ExamineExam.js.map +0 -1
  89. package/dist/components/grading/examAnnotationUtils.d.ts +0 -4
  90. package/dist/components/grading/examAnnotationUtils.d.ts.map +0 -1
  91. package/dist/components/grading/examAnnotationUtils.js +0 -51
  92. package/dist/components/grading/examAnnotationUtils.js.map +0 -1
  93. package/dist/components/shared/AnnotatableText.d.ts +0 -7
  94. package/dist/components/shared/AnnotatableText.d.ts.map +0 -1
  95. package/dist/components/shared/AnnotatableText.js +0 -73
  96. package/dist/components/shared/AnnotatableText.js.map +0 -1
  97. package/dist/components/shared/AnnotationPopup.d.ts +0 -3
  98. package/dist/components/shared/AnnotationPopup.d.ts.map +0 -1
  99. package/dist/components/shared/AnnotationPopup.js +0 -74
  100. package/dist/components/shared/AnnotationPopup.js.map +0 -1
  101. package/dist/components/shared/internal/AudioPlaybackError.d.ts +0 -8
  102. package/dist/components/shared/internal/AudioPlaybackError.d.ts.map +0 -1
  103. package/dist/components/shared/internal/AudioPlaybackError.js +0 -17
  104. package/dist/components/shared/internal/AudioPlaybackError.js.map +0 -1
  105. package/dist/components/surround.d.ts +0 -8
  106. package/dist/components/surround.d.ts.map +0 -1
  107. package/dist/components/surround.js +0 -19
  108. package/dist/components/surround.js.map +0 -1
@@ -1,217 +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 react_1 = require("@testing-library/react");
7
- const user_event_1 = __importDefault(require("@testing-library/user-event"));
8
- const Exam_1 = __importDefault(require("../src/components/exam/Exam"));
9
- const GradingInstructions_1 = __importDefault(require("../src/components/grading-instructions/GradingInstructions"));
10
- const fs_1 = require("fs");
11
- const exam_engine_mastering_1 = require("@digabi/exam-engine-mastering");
12
- const exam_engine_exams_1 = require("@digabi/exam-engine-exams");
13
- const path_1 = __importDefault(require("path"));
14
- const parseExam_1 = __importDefault(require("../dist/parser/parseExam"));
15
- const examServerApi_1 = require("./examServerApi");
16
- const react_2 = __importDefault(require("react"));
17
- require("@testing-library/jest-dom");
18
- const Attachments_1 = __importDefault(require("../src/components/attachments/Attachments"));
19
- class IntersectionObserver {
20
- constructor() {
21
- this.root = null;
22
- this.rootMargin = '';
23
- this.thresholds = [];
24
- this.disconnect = () => null;
25
- this.observe = () => null;
26
- this.takeRecords = () => [];
27
- this.unobserve = () => null;
28
- }
29
- }
30
- window.IntersectionObserver = IntersectionObserver;
31
- global.IntersectionObserver = IntersectionObserver;
32
- window.scrollTo = jest.fn();
33
- document.execCommand = jest.fn();
34
- describe('Annotations', () => {
35
- let doc;
36
- beforeEach(async () => {
37
- window.getSelection = jest.fn();
38
- const examPath = (0, exam_engine_exams_1.resolveExam)('FF/FF.xml');
39
- const resolveAttachment = (filename) => path_1.default.resolve(path_1.default.dirname(examPath), 'attachments', filename);
40
- const source = await fs_1.promises.readFile(examPath, 'utf-8');
41
- const results = await (0, exam_engine_mastering_1.masterExam)(source, () => '', (0, exam_engine_mastering_1.getMediaMetadataFromLocalFile)(resolveAttachment), {
42
- removeCorrectAnswers: false
43
- });
44
- doc = (0, parseExam_1.default)(results[0].xml, true);
45
- });
46
- afterEach(() => {
47
- ;
48
- window.getSelection.mockReset();
49
- window.scrollTo.mockReset();
50
- document.execCommand.mockReset();
51
- });
52
- const defaultTextToAnnotate = 'Sekä moraali että tavat pyrkivät ohjaamaan ihmisten käyttäytymistä.';
53
- const defaultAnnotationAnchor = 'e:exam:0 > e:section:1 > e:question:2 > e:question-instruction:1 > span:0 > p:0 > #text:0';
54
- it('popup is rendered', async () => {
55
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
56
- await annotateText(exam, defaultTextToAnnotate);
57
- expect(exam.getByTestId('annotation-popup')).toBeVisible();
58
- });
59
- it('popup is not rendered if annotation props are not passed', async () => {
60
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps() }));
61
- await annotateText(exam, defaultTextToAnnotate);
62
- expect(exam.queryByTestId('annotation-popup')).not.toBeInTheDocument();
63
- });
64
- it('callback is called when annotation is saved', async () => {
65
- const saveAnnotationMock = jest.fn();
66
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: saveAnnotationMock }));
67
- await annotateText(exam, defaultTextToAnnotate);
68
- const textbox = exam.getByTestId('edit-comment');
69
- react_1.fireEvent.input(textbox, {
70
- target: { innerText: 'New Value', innerHTML: 'New Value' }
71
- });
72
- await user_event_1.default.click(exam.getByText('Vastaa'));
73
- expect(saveAnnotationMock).toHaveBeenCalledTimes(1);
74
- expect(saveAnnotationMock).toHaveBeenCalledWith({
75
- annotationAnchor: defaultAnnotationAnchor,
76
- annotationId: undefined,
77
- displayNumber: '2',
78
- length: defaultTextToAnnotate.length,
79
- message: 'New Value',
80
- selectedText: defaultTextToAnnotate,
81
- startIndex: 0
82
- });
83
- });
84
- it('popup field is empty when creating new annotation', async () => {
85
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
86
- await annotateText(exam, defaultTextToAnnotate);
87
- const textbox = exam.getByTestId('edit-comment');
88
- react_1.fireEvent.input(textbox, {
89
- target: { innerText: 'New Value', innerHTML: 'New Value' }
90
- });
91
- await user_event_1.default.click(exam.getByText('Vastaa'));
92
- await annotateText(exam, 'Esitä jokin toinen käsitys filosofiasta ja vertaa sitä');
93
- expect(exam.getByTestId('edit-comment').textContent).toHaveLength(0);
94
- });
95
- it('callback is called when annotation is clicked', async () => {
96
- const clickAnnotationMock = jest.fn();
97
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: { [defaultAnnotationAnchor]: [createAnnotation(1, 5, 12, 'moraali että')] }, onClickAnnotation: clickAnnotationMock, onSaveAnnotation: () => { } }));
98
- await user_event_1.default.click(exam.container.querySelector('[data-annotation-id="1"]'));
99
- expect(clickAnnotationMock).toHaveBeenCalledTimes(1);
100
- expect(clickAnnotationMock).toHaveBeenCalledWith(expect.anything(), {
101
- annotationAnchor: defaultAnnotationAnchor,
102
- annotationId: 1,
103
- displayNumber: '',
104
- hidden: false,
105
- length: 12,
106
- message: '',
107
- selectedText: 'moraali että',
108
- startIndex: 5
109
- });
110
- });
111
- it('annotations are added to dom when provided', () => {
112
- var _a, _b;
113
- const annotationProps = {
114
- annotations: {
115
- [defaultAnnotationAnchor]: [createAnnotation(1, 5, 7, 'moraali'), createAnnotation(3, 18, 5, 'tavat')]
116
- },
117
- onClickAnnotation: () => { },
118
- onSaveAnnotation: () => { }
119
- };
120
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
121
- expect(exam.container.querySelector('[data-annotation-id="1"]')).toBeInTheDocument();
122
- expect((_a = exam.container.querySelector('[data-annotation-id="1"]')) === null || _a === void 0 ? void 0 : _a.textContent).toBe('moraali');
123
- expect(exam.container.querySelector('[data-annotation-id="3"]')).toBeInTheDocument();
124
- expect((_b = exam.container.querySelector('[data-annotation-id="3"]')) === null || _b === void 0 ? void 0 : _b.textContent).toBe('tavat');
125
- });
126
- it('hidden annotation works correctly', () => {
127
- var _a, _b;
128
- const annotationProps = {
129
- annotations: {
130
- [defaultAnnotationAnchor]: [
131
- {
132
- annotationId: 1,
133
- annotationAnchor: defaultAnnotationAnchor,
134
- hidden: true,
135
- startIndex: 24,
136
- length: 8,
137
- message: '',
138
- displayNumber: '',
139
- selectedText: 'pyrkivät'
140
- }
141
- ]
142
- },
143
- onClickAnnotation: () => { },
144
- onSaveAnnotation: () => { }
145
- };
146
- const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
147
- expect(exam.container.querySelector('[data-annotation-id="1"]')).toBeInTheDocument();
148
- 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('Sekä moraali että tavat pyrkivät ohjaamaan ihmisten käyttäytymistä.');
149
- });
150
- it('grading instructions can be annotated', async () => {
151
- const gi = (0, react_1.render)(react_2.default.createElement(GradingInstructions_1.default, { ...getCommonProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
152
- await annotateText(gi, defaultTextToAnnotate);
153
- expect(gi.getByTestId('annotation-popup')).toBeVisible();
154
- });
155
- it('attachments can be annotated', async () => {
156
- const gi = (0, react_1.render)(react_2.default.createElement(Attachments_1.default, { ...getCommonProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
157
- await annotateText(gi, 'Mollit sint magna aliquip in.');
158
- expect(gi.getByTestId('annotation-popup')).toBeVisible();
159
- });
160
- function createAnnotation(id, startIndex, length, selectedText) {
161
- return {
162
- annotationId: id,
163
- annotationAnchor: defaultAnnotationAnchor,
164
- hidden: false,
165
- startIndex,
166
- length,
167
- message: '',
168
- displayNumber: '',
169
- selectedText
170
- };
171
- }
172
- async function annotateText(exam, text) {
173
- const textElement = exam.getByText(text);
174
- mockWindowSelection(text, text.length, textElement);
175
- await user_event_1.default.click(textElement);
176
- }
177
- function mockWindowSelection(text = 'mocked selection text', length = 5, element) {
178
- ;
179
- window.getSelection.mockImplementation(() => ({
180
- toString: () => text,
181
- rangeCount: 1,
182
- getRangeAt: jest.fn().mockReturnValue({
183
- startOffset: 0,
184
- endOffset: length,
185
- startContainer: element,
186
- endContainer: element,
187
- cloneContents: jest.fn().mockReturnValue({ children: [], childNodes: [] })
188
- })
189
- }));
190
- }
191
- function getCommonProps() {
192
- return {
193
- doc,
194
- answers: [],
195
- attachmentsURL: '/attachments',
196
- resolveAttachment: (filename) => `/attachments/${encodeURIComponent(filename)}`
197
- };
198
- }
199
- function getExamProps() {
200
- const examProps = {
201
- ...getCommonProps(),
202
- casStatus: 'forbidden',
203
- examServerApi: examServerApi_1.examServerApi,
204
- restrictedAudioPlaybackStats: [],
205
- studentName: '[Kokelaan Nimi]',
206
- showUndoView: false,
207
- undoViewProps: {
208
- questionId: 0,
209
- title: '',
210
- close: () => undefined,
211
- restoreAnswer: () => undefined
212
- }
213
- };
214
- return examProps;
215
- }
216
- });
217
- //# 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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"}
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -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,9 +0,0 @@
1
- import React from 'react';
2
- interface AudioContext {
3
- bitRate?: number;
4
- saveInterval?: number;
5
- }
6
- export declare const AudioContext: React.Context<AudioContext>;
7
- export declare const withAudioContext: (Component: React.ComponentType<any>) => React.ComponentType<any>;
8
- export {};
9
- //# sourceMappingURL=AudioContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/components/context/AudioContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,YAAY,6BAAwD,CAAA;AAEjF,eAAO,MAAM,gBAAgB,mEAG1B,CAAA"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { getNumericAttribute } from '../../dom-utils';
3
- import { withContext } from './withContext';
4
- export const AudioContext = React.createContext({});
5
- export const withAudioContext = withContext(AudioContext, ({ element }) => ({
6
- bitRate: getNumericAttribute(element, 'bit-rate'),
7
- saveInterval: getNumericAttribute(element, 'save-interval')
8
- }));
9
- //# sourceMappingURL=AudioContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AudioContext.js","sourceRoot":"","sources":["../../../src/components/context/AudioContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAQ3C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAe,EAAkB,CAAC,CAAA;AAEjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAmC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5G,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC;IACjD,YAAY,EAAE,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;CAC5D,CAAC,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- declare function ExamineExam(): React.JSX.Element;
3
- declare const _default: React.MemoExoticComponent<typeof ExamineExam>;
4
- export default _default;
5
- //# sourceMappingURL=ExamineExam.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,20 +0,0 @@
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
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- import React from 'react';
2
- export declare function onMouseDownForAnnotation(e: React.MouseEvent, mouseUpCallback: (e: any) => void): void;
3
- export declare function hasTextSelectedInAnswerText(): boolean;
4
- //# sourceMappingURL=examAnnotationUtils.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,51 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"examAnnotationUtils.js","sourceRoot":"","sources":["../../../src/components/grading/examAnnotationUtils.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,73 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnnotatableText.js","sourceRoot":"","sources":["../../../src/components/shared/AnnotatableText.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,MAAM,gBAAgB,GAAG,CAAC,UAA8C,EAAgC,EAAE,CACxG,cAAc,IAAI,UAAU,CAAA;AAE9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,IAAI,EACJ,qBAAqB,EAItB,EAAE,EAAE;IACH,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAA;IAEtH,MAAM,IAAI,GAAG,cAAc,CAAC,IAAe,CAAC,CAAA;IAC5C,MAAM,wBAAwB,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,gBAAgB,MAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;IAChG,MAAM,mBAAmB,GAAG;QAC1B,GAAG,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,IAAI,CAAC,KAAI,EAAE,CAAC;QAC9B,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAA;IAED,MAAM,eAAe,GAAG,CAAC,UAA6B,EAAE,EAAE;;QACxD,MAAM,aAAa,GAAG,CAAA,MAAA,cAAc,CAAC,IAAI,CAAC,aAAc,EAAE,UAAU,CAAC,0CAAE,YAAY,CAAC,gBAAgB,CAAC,KAAI,EAAE,CAAA;QAC3G,gBAAgB,CAAC,EAAE,GAAG,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;IAC5E,CAAC,CAAA;IAED,SAAS,WAAW,CAAC,CAAmB;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAiB,CAAA;QAClC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QACD,wBAAwB,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,CACL,8BAAM,WAAW,EAAE,WAAW,EAAE,SAAS,EAAC,eAAe,EAAC,GAAG,EAAE,IAAI,IAChE,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAY,CAClG,CACR,CAAA;IAED,SAAS,QAAQ,CAAC,IAAY,EAAE,WAAmD;QACjF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;QAED,SAAS,aAAa,CAAC,UAA6B;YAClD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QACzF,CAAC;QAED,MAAM,KAAK,GAAsB,EAAE,CAAA;QACnC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;QAEvD,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,SAAS,CACtD,WAAW,EACX,UAAU,CAAC,EAAE,CACX,UAAU,CAAC,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,YAAY,KAAK,aAAa,CAAC,UAAU,CAAC,CAC/G,CAAA;QAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,CAAC,GAAG,CACpB,CAAC,CAAC,EAAE,CACF,iBAAiB,CAAC,CAAC,YAAY,0DAA0D,aAAa,CAAC,CAAC,CAAC,GAAG,CAC/G,CACF,CAAA;QACH,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;YAE5C,qCAAqC;YACrC,IAAI,UAAU,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;YAC9D,CAAC;YAED,kBAAkB;YAClB,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;YAC1F,KAAK,CAAC,IAAI,CACR,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAClB,8BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,cAAc,wBACJ,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBACnE,MAAM,GAClB,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAkB,EACrC,mBAAmB,EAAE,mBAAmB,GACxC,CACH,CACF,CAAA;YAED,sIAAsI;YACtI,MAAM,uCAAuC,GAAG,UAAU,CAAC,UAAU,GAAG,SAAS,IAAI,UAAU,CAAC,MAAM,CAAA;YAEtG,IAAI,CAAC,uCAAuC,EAAE,CAAC;gBAC7C,SAAS,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,EACZ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EAMpB,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAc,IAAI,CAAC,CAAA;IACzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,CACL,8BACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAC,cAAc,wBACJ,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBACnE,OAAO,EACnB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1F,UAAU;QACV,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,KAAI,6BAAK,SAAS,EAAC,cAAc,kBAAe,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,GAAI,CAC5F,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare function AnnotationPopup(): React.JSX.Element | null;
3
- //# sourceMappingURL=AnnotationPopup.d.ts.map
@@ -1 +0,0 @@
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"}