@digabi/exam-engine-core 20.2.3 → 20.2.4-meta-attribute.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/dist/__tests__/testExamRendering.js +12 -0
  2. package/dist/__tests__/testExamRendering.js.map +1 -1
  3. package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
  4. package/dist/components/context/TOCContext.d.ts +9 -0
  5. package/dist/components/context/TOCContext.d.ts.map +1 -0
  6. package/dist/components/context/TOCContext.js +3 -0
  7. package/dist/components/context/TOCContext.js.map +1 -0
  8. package/dist/components/exam/Exam.d.ts +1 -1
  9. package/dist/components/exam/Exam.d.ts.map +1 -1
  10. package/dist/components/exam/Exam.js +97 -108
  11. package/dist/components/exam/Exam.js.map +1 -1
  12. package/dist/components/exam/Question.d.ts.map +1 -1
  13. package/dist/components/exam/Question.js +14 -6
  14. package/dist/components/exam/Question.js.map +1 -1
  15. package/dist/components/exam/SectionTitle.d.ts.map +1 -1
  16. package/dist/components/exam/SectionTitle.js +10 -2
  17. package/dist/components/exam/SectionTitle.js.map +1 -1
  18. package/dist/components/shared/TOCQuestion.d.ts +4 -0
  19. package/dist/components/shared/TOCQuestion.d.ts.map +1 -0
  20. package/dist/components/shared/TOCQuestion.js +77 -0
  21. package/dist/components/shared/TOCQuestion.js.map +1 -0
  22. package/dist/components/shared/TOCSection.d.ts +7 -0
  23. package/dist/components/shared/TOCSection.d.ts.map +1 -0
  24. package/dist/components/shared/TOCSection.js +15 -0
  25. package/dist/components/shared/TOCSection.js.map +1 -0
  26. package/dist/components/shared/TOCSectionTitle.d.ts +4 -0
  27. package/dist/components/shared/TOCSectionTitle.d.ts.map +1 -0
  28. package/dist/components/shared/TOCSectionTitle.js +34 -0
  29. package/dist/components/shared/TOCSectionTitle.js.map +1 -0
  30. package/dist/components/shared/TableOfContents.d.ts.map +1 -1
  31. package/dist/components/shared/TableOfContents.js +30 -104
  32. package/dist/components/shared/TableOfContents.js.map +1 -1
  33. package/dist/dom-utils.d.ts +1 -0
  34. package/dist/dom-utils.d.ts.map +1 -1
  35. package/dist/dom-utils.js +17 -1
  36. package/dist/dom-utils.js.map +1 -1
  37. package/dist/main-bundle.js +1 -1
  38. package/dist/main.css +1 -1
  39. package/package.json +2 -2
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ type TOCContextType = {
3
+ visibleTOCElements: string[];
4
+ isInSidebar: boolean;
5
+ addRef: (object: HTMLDivElement) => void;
6
+ };
7
+ export declare const TOCContext: import("react").Context<TOCContextType>;
8
+ export {};
9
+ //# sourceMappingURL=TOCContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TOCContext.d.ts","sourceRoot":"","sources":["../../../src/components/context/TOCContext.ts"],"names":[],"mappings":";AAEA,KAAK,cAAc,GAAG;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,UAAU,yCAAsC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ export const TOCContext = createContext({});
3
+ //# sourceMappingURL=TOCContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TOCContext.js","sourceRoot":"","sources":["../../../src/components/context/TOCContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQrC,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,EAAoB,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ExamAnswer, ExamServerAPI, InitialCasStatus, RestrictedAudioPlaybackStats } from '../../index';
3
- import { TextAnswer as TextAnswerType, RichTextAnswer } from '../../types/ExamAnswer';
3
+ import { RichTextAnswer, TextAnswer as TextAnswerType } from '../../types/ExamAnswer';
4
4
  /** Props common to taking the exams and viewing results */
5
5
  export interface CommonExamProps {
6
6
  /** Initial answers */
@@ -1 +1 @@
1
- {"version":3,"file":"Exam.d.ts","sourceRoot":"","sources":["../../../src/components/exam/Exam.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AA+CvG,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAKrF,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,mBAAmB;IACnB,GAAG,EAAE,WAAW,CAAA;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE,CAAC,UAAU,EAAE,cAAc,GAAG,cAAc,KAAK,IAAI,CAAA;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,uDAAuD;AACvD,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,2CAA2C;IAC3C,SAAS,EAAE,gBAAgB,CAAA;IAC3B,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;OAGG;IACH,4BAA4B,EAAE,4BAA4B,EAAE,CAAA;IAC5D,qCAAqC;IACrC,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,aAAa,CAAA;CAC7B;;AAqPD,wBAAuE"}
1
+ {"version":3,"file":"Exam.d.ts","sourceRoot":"","sources":["../../../src/components/exam/Exam.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAOzE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAIvG,OAAO,EAAE,cAAc,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA;AA4CrF,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,mBAAmB;IACnB,GAAG,EAAE,WAAW,CAAA;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,aAAa,EAAE,CAAC,UAAU,EAAE,cAAc,GAAG,cAAc,KAAK,IAAI,CAAA;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,uDAAuD;AACvD,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,2CAA2C;IAC3C,SAAS,EAAE,gBAAgB,CAAA;IAC3B,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;OAGG;IACH,4BAA4B,EAAE,4BAA4B,EAAE,CAAA;IAC5D,qCAAqC;IACrC,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,aAAa,CAAA;CAC7B;;AAoOD,wBAAuE"}
@@ -1,4 +1,4 @@
1
- import React, { createRef, useContext, useEffect } from 'react';
1
+ import React, { createRef, useContext, useEffect, useState } from 'react';
2
2
  import { I18nextProvider } from 'react-i18next';
3
3
  import { Provider } from 'react-redux';
4
4
  import { createRenderChildNodes } from '../../createRenderChildNodes';
@@ -9,47 +9,47 @@ import { parseExamStructure } from '../../parser/parseExamStructure';
9
9
  import { scrollToHash } from '../../scrollToHash';
10
10
  import { initializeExamStore } from '../../store';
11
11
  import { useCached } from '../../useCached';
12
+ import DocumentTitle from '../DocumentTitle';
13
+ import RenderChildNodes from '../RenderChildNodes';
14
+ import SectionElement from '../SectionElement';
15
+ import { CommonExamContext, withCommonExamContext } from '../context/CommonExamContext';
16
+ import { withExamContext } from '../context/ExamContext';
17
+ import { TOCContext } from '../context/TOCContext';
12
18
  import mkAttachmentLink from '../shared/AttachmentLink';
13
19
  import mkAttachmentLinks from '../shared/AttachmentLinks';
14
20
  import Audio from '../shared/Audio';
15
21
  import AudioGroup from '../shared/AudioGroup';
16
22
  import AudioTest from '../shared/AudioTest';
23
+ import ExamTranslation from '../shared/ExamTranslation';
24
+ import File from '../shared/File';
25
+ import { Footer } from '../shared/Footer';
26
+ import Formula from '../shared/Formula';
27
+ import Image from '../shared/Image';
28
+ import ImageOverlay from '../shared/ImageOverlay';
29
+ import { QuestionNumber } from '../shared/QuestionNumber';
30
+ import References from '../shared/References';
31
+ import { mkTableOfContents } from '../shared/TableOfContents';
32
+ import { VersionNumber } from '../shared/VersionNumber';
33
+ import Video from '../shared/Video';
34
+ import ExamAttachment from './Attachment';
17
35
  import ChoiceAnswer from './ChoiceAnswer';
18
- import { CommonExamContext, withCommonExamContext } from '../context/CommonExamContext';
19
- import DocumentTitle from '../DocumentTitle';
20
36
  import DropdownAnswer from './DropdownAnswer';
21
- import ErrorIndicator from './internal/ErrorIndicator';
22
- import ExamAttachment from './Attachment';
23
- import { withExamContext } from '../context/ExamContext';
24
37
  import ExamFooter from './ExamFooter';
25
38
  import ExamInstruction from './ExamInstruction';
39
+ import ExternalMaterial from './ExternalMaterial';
40
+ import GoToExamineAnswersButton from './GoToExamineAnswersButton';
41
+ import Hints from './Hints';
26
42
  import Question from './Question';
27
43
  import QuestionInstruction from './QuestionInstruction';
28
44
  import QuestionTitle from './QuestionTitle';
29
45
  import Section from './Section';
30
- import SectionTitle from './SectionTitle';
31
- import ExternalMaterial from './ExternalMaterial';
32
- import File from '../shared/File';
33
- import Formula from '../shared/Formula';
34
- import Hints from './Hints';
35
- import Image from '../shared/Image';
36
- import ImageOverlay from '../shared/ImageOverlay';
37
- import References from '../shared/References';
38
- import SaveIndicator from './internal/SaveIndicator';
39
- import SectionElement from '../SectionElement';
40
46
  import SectionInstruction from './SectionInstruction';
41
- import { mkTableOfContents } from '../shared/TableOfContents';
42
- import TextAnswer from './TextAnswer';
43
- import Video from '../shared/Video';
44
- import RenderChildNodes from '../RenderChildNodes';
45
- import { QuestionNumber } from '../shared/QuestionNumber';
46
- import ExamTranslation from '../shared/ExamTranslation';
47
- import * as _ from 'lodash-es';
47
+ import SectionTitle from './SectionTitle';
48
48
  import { StudentNameHeader } from './StudentNameHeader';
49
+ import TextAnswer from './TextAnswer';
49
50
  import { UndoView } from './UndoView';
50
- import GoToExamineAnswersButton from './GoToExamineAnswersButton';
51
- import { Footer } from '../shared/Footer';
52
- import { VersionNumber } from '../shared/VersionNumber';
51
+ import ErrorIndicator from './internal/ErrorIndicator';
52
+ import SaveIndicator from './internal/SaveIndicator';
53
53
  const renderChildNodes = createRenderChildNodes({
54
54
  attachment: ExamAttachment,
55
55
  'attachment-link': mkAttachmentLink('link'),
@@ -103,99 +103,88 @@ const Exam = ({ doc, casStatus, answers, restrictedAudioPlaybackStats, examServe
103
103
  const i18n = useCached(() => initI18n(language, examCode, dayCode));
104
104
  useEffect(changeLanguage(i18n, language));
105
105
  useEffect(scrollToHash, []);
106
+ const [allRefs, setAllRefs] = useState([]);
107
+ const addRef = (ref) => {
108
+ if (!allRefs.includes(ref)) {
109
+ setAllRefs(prevRefs => {
110
+ const nextAllRefs = [...prevRefs, ref];
111
+ return nextAllRefs;
112
+ });
113
+ }
114
+ };
115
+ useEffect(() => {
116
+ const observer = new IntersectionObserver(callback);
117
+ const observableElements = allRefs;
118
+ observableElements.forEach(element => observer.observe(element));
119
+ return () => {
120
+ observableElements.forEach(element => observer.unobserve(element));
121
+ };
122
+ }, [allRefs]);
123
+ const callback = (entries) => entries.forEach(entry => {
124
+ const dataTOCId = entry.target.getAttribute('data-toc-id');
125
+ setVisibleElements(prevEntries => entry.isIntersecting ? [...prevEntries, dataTOCId] : prevEntries.filter(entries => entries !== dataTOCId));
126
+ });
127
+ const [visibleElements, setVisibleElements] = useState([]);
106
128
  const isInViewport = (element) => {
129
+ const offset = 100; // must be at least this far away from viewport edges
107
130
  const rect = element.getBoundingClientRect();
108
- return rect.top >= 100 && rect.bottom <= window.innerHeight - 100;
131
+ return rect.top >= offset && rect.bottom <= window.innerHeight - offset;
109
132
  };
110
- const handleExamScroll = () => {
111
- const scrollY = window.scrollY;
112
- const questionsAndSectionTitles = document.querySelectorAll('.e-exam-question.e-level-0, .exam-section-title');
113
- const sideNavigation = document.querySelector(`.sidebar-toc-container .table-of-contents`);
114
- const highlightableElementsInNavi = document.querySelectorAll('li.level-0, .toc-section-header, .answer-instructions-container');
115
- highlightableElementsInNavi.forEach(i => i.classList.remove('current'));
116
- // Find the section currently in view
117
- questionsAndSectionTitles.forEach(element => {
118
- var _a, _b;
119
- const elementTop = element.getBoundingClientRect().top + scrollY;
120
- const elementBottom = element.getBoundingClientRect().bottom + scrollY;
121
- const elementBeginsInView = elementTop < scrollY + window.innerHeight && elementTop > scrollY;
122
- const elementEndsInView = elementBottom < scrollY + window.innerHeight && elementBottom > scrollY;
123
- const elementFillsView = elementTop < scrollY && elementBottom > scrollY + window.innerHeight;
124
- if (elementBeginsInView || elementEndsInView || elementFillsView) {
125
- const currentSectionId = (_a = element.getAttribute('id')) === null || _a === void 0 ? void 0 : _a.replace('section-title-', '');
126
- if (currentSectionId) {
127
- const naviSectionHeader = document.querySelector(`.table-of-contents #toc-section-title-${currentSectionId}`);
128
- const sectionAnswerInstructions = document.querySelector(`.table-of-contents .answer-instructions-container.section-${currentSectionId}`);
129
- naviSectionHeader === null || naviSectionHeader === void 0 ? void 0 : naviSectionHeader.classList.add('current');
130
- sectionAnswerInstructions === null || sectionAnswerInstructions === void 0 ? void 0 : sectionAnswerInstructions.classList.add('current');
131
- }
132
- const currentQuestionNumber = (_b = element.querySelector('.anchor')) === null || _b === void 0 ? void 0 : _b.id.replace('question-nr-', '');
133
- const naviQuestionTitle = currentQuestionNumber &&
134
- document.querySelector(`.table-of-contents li[data-list-number="${currentQuestionNumber}."]`);
135
- if (naviQuestionTitle) {
136
- naviQuestionTitle.classList.add('current');
137
- const isVisible = isInViewport(naviQuestionTitle);
138
- if (!isVisible && !!sideNavigation) {
139
- const navHeight = sideNavigation.getBoundingClientRect().height;
140
- const scrollToPos = naviQuestionTitle.offsetTop - navHeight / 2;
141
- sideNavigation.scrollTo({ behavior: 'smooth', top: scrollToPos });
142
- }
133
+ useEffect(() => {
134
+ visibleElements.forEach(element => {
135
+ const displayNumber = element.replace('question-', '');
136
+ const naviQuestionTitle = document.querySelector(`.table-of-contents li[data-list-number="${displayNumber}."]`);
137
+ if (naviQuestionTitle) {
138
+ const isVisible = isInViewport(naviQuestionTitle);
139
+ const sideNavigation = document.querySelector(`.sidebar-toc-container .table-of-contents`);
140
+ if (!isVisible && !!sideNavigation) {
141
+ const navHeight = sideNavigation.getBoundingClientRect().height;
142
+ const scrollToPos = naviQuestionTitle.offsetTop - navHeight / 2;
143
+ sideNavigation.scrollTo({ behavior: 'smooth', top: scrollToPos });
143
144
  }
144
145
  }
145
146
  });
146
- };
147
- window.addEventListener('scroll', _.throttle(handleExamScroll, 100, { trailing: false }));
148
- const handleTOCScroll = (e) => {
149
- const toc = e.currentTarget;
150
- if (toc.scrollHeight <= toc.clientHeight) {
151
- return;
152
- }
153
- const deltaY = e.deltaY;
154
- const hitsTop = deltaY < 0 && toc.scrollTop === 0;
155
- const hitsBottom = deltaY > 0 && toc.scrollTop >= toc.scrollHeight - toc.clientHeight;
156
- if (hitsTop || hitsBottom) {
157
- e.preventDefault();
158
- }
159
- };
160
- useEffect(() => {
161
- const toc = document.querySelector('.sidebar-toc-container .table-of-contents');
162
- toc === null || toc === void 0 ? void 0 : toc.addEventListener('wheel', handleTOCScroll, { passive: false });
163
- return () => toc === null || toc === void 0 ? void 0 : toc.addEventListener('wheel', handleTOCScroll, { passive: false });
164
- }, []);
147
+ }, [visibleElements]);
165
148
  // TODO: Remove 'isNewKoeVersion' checks when old Koe version is not supported anymore
149
+ // Here "old" means versions where student can not examine answers on a separate page after answering questions
166
150
  const isNewKoeVersion = examServerApi.examineExam !== undefined;
167
151
  const isPreview = studentName === '[Kokelaan Nimi]';
168
152
  return (React.createElement(Provider, { store: store },
169
153
  React.createElement(I18nextProvider, { i18n: i18n },
170
- React.createElement("main", { className: "e-exam", lang: subjectLanguage, "aria-labelledby": examTitleId, ref: examRef },
171
- React.createElement(React.StrictMode, null),
172
- examStylesheet && React.createElement("link", { rel: "stylesheet", href: resolveAttachment(examStylesheet) }),
173
- React.createElement("div", { className: "e-toc-and-exam" },
174
- tableOfContents && (React.createElement("div", { className: "sidebar-toc-container", "aria-hidden": "true" },
175
- React.createElement(TableOfContentsSidebar, { element: tableOfContents, renderChildNodes }))),
176
- React.createElement("div", { className: "main-exam-container" },
177
- React.createElement("div", { className: "main-exam" },
178
- React.createElement(StudentNameHeader, { studentName: studentName }),
179
- React.createElement(SectionElement, { "aria-labelledby": examTitleId },
180
- examTitle && React.createElement(DocumentTitle, { id: examTitleId }, renderChildNodes(examTitle)),
181
- date && (React.createElement("p", null,
182
- React.createElement("strong", null, dateTimeFormatter.format(date)))),
183
- examInstruction && React.createElement(ExamInstruction, { element: examInstruction, renderChildNodes }),
184
- tableOfContents && (React.createElement("div", { className: "main-toc-container" },
185
- React.createElement(TableOfContents, { element: tableOfContents,
186
- renderChildNodes }))),
187
- externalMaterial && (React.createElement(ExternalMaterial, { element: externalMaterial, renderChildNodes, forceRender: true }))),
188
- renderChildNodes(root),
189
- (isPreview || isNewKoeVersion) && (React.createElement("div", { className: "e-examine-exam" },
190
- React.createElement(GoToExamineAnswersButton, null),
191
- React.createElement(ProceedToExamineAnswersText, null)))))),
192
- (isPreview || isNewKoeVersion) && (React.createElement(Footer, null,
193
- React.createElement("div", { className: "e-footer-version-number-container" },
194
- React.createElement(VersionNumber, null)))),
195
- React.createElement("div", { className: "e-indicators-container" },
196
- React.createElement(ErrorIndicator, null),
197
- React.createElement(SaveIndicator, null)),
198
- showUndoView && isNewKoeVersion && React.createElement(UndoView, { ...undoViewProps })))));
154
+ React.createElement(TOCContext.Provider, { value: {
155
+ visibleTOCElements: visibleElements,
156
+ isInSidebar: true,
157
+ addRef
158
+ } },
159
+ React.createElement("main", { className: "e-exam", lang: subjectLanguage, "aria-labelledby": examTitleId, ref: examRef },
160
+ React.createElement(React.StrictMode, null),
161
+ examStylesheet && React.createElement("link", { rel: "stylesheet", href: resolveAttachment(examStylesheet) }),
162
+ React.createElement("div", { className: "e-toc-and-exam" },
163
+ tableOfContents && (React.createElement("div", { className: "sidebar-toc-container", "aria-hidden": "true" },
164
+ React.createElement(TableOfContentsSidebar, { element: tableOfContents, renderChildNodes }))),
165
+ React.createElement("div", { className: "main-exam-container" },
166
+ React.createElement("div", { className: "main-exam" },
167
+ React.createElement(StudentNameHeader, { studentName: studentName }),
168
+ React.createElement(SectionElement, { "aria-labelledby": examTitleId },
169
+ examTitle && React.createElement(DocumentTitle, { id: examTitleId }, renderChildNodes(examTitle)),
170
+ date && (React.createElement("p", null,
171
+ React.createElement("strong", null, dateTimeFormatter.format(date)))),
172
+ examInstruction && React.createElement(ExamInstruction, { element: examInstruction, renderChildNodes }),
173
+ tableOfContents && (React.createElement("div", { className: "main-toc-container" },
174
+ React.createElement(TableOfContents, { element: tableOfContents,
175
+ renderChildNodes }))),
176
+ externalMaterial && (React.createElement(ExternalMaterial, { element: externalMaterial, renderChildNodes, forceRender: true }))),
177
+ renderChildNodes(root),
178
+ (isPreview || isNewKoeVersion) && (React.createElement("div", { className: "e-examine-exam" },
179
+ React.createElement(GoToExamineAnswersButton, null),
180
+ React.createElement(ProceedToExamineAnswersText, null)))))),
181
+ (isPreview || isNewKoeVersion) && (React.createElement(Footer, null,
182
+ React.createElement("div", { className: "e-footer-version-number-container" },
183
+ React.createElement(VersionNumber, null)))),
184
+ React.createElement("div", { className: "e-indicators-container" },
185
+ React.createElement(ErrorIndicator, null),
186
+ React.createElement(SaveIndicator, null)),
187
+ showUndoView && isNewKoeVersion && React.createElement(UndoView, { ...undoViewProps }))))));
199
188
  };
200
189
  const ProceedToExamineAnswersText = () => {
201
190
  const { t } = useExamTranslation();
@@ -1 +1 @@
1
- {"version":3,"file":"Exam.js","sourceRoot":"","sources":["../../../src/components/exam/Exam.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Exam.js","sourceRoot":"","sources":["../../../src/components/exam/Exam.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Question.d.ts","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAY7E,eAAO,MAAM,qBAAqB;cACtB,OAAO;sBACC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;EACkB,CAAA;;AA6E1D,wBAAwD"}
1
+ {"version":3,"file":"Question.d.ts","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAW7E,eAAO,MAAM,qBAAqB;cACtB,OAAO;sBACC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI;EACkB,CAAA;;AAyF1D,wBAAwD"}
@@ -1,13 +1,14 @@
1
+ import { faCompressAlt } from '@fortawesome/free-solid-svg-icons';
2
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
1
3
  import classNames from 'classnames';
2
4
  import React, { createContext, useContext, useEffect, useState } from 'react';
3
5
  import { useSelector } from 'react-redux';
4
- import { QuestionContext, withQuestionContext } from '../context/QuestionContext';
5
- import { SectionContext } from '../context/SectionContext';
6
- import { faCompressAlt } from '@fortawesome/free-solid-svg-icons';
7
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
8
- import { useExamTranslation } from '../../i18n';
9
6
  import { getNumericAttribute, query } from '../../dom-utils';
7
+ import { useExamTranslation } from '../../i18n';
10
8
  import { ExamContext } from '../context/ExamContext';
9
+ import { QuestionContext, withQuestionContext } from '../context/QuestionContext';
10
+ import { SectionContext } from '../context/SectionContext';
11
+ import { TOCContext } from '../context/TOCContext';
11
12
  export const ExpandQuestionContext = createContext({ expanded: false, toggleWriterMode: () => undefined });
12
13
  function Question({ element, renderChildNodes }) {
13
14
  const casStatus = useSelector((state) => state.cas.casStatus);
@@ -50,12 +51,19 @@ function Question({ element, renderChildNodes }) {
50
51
  }
51
52
  return () => window.removeEventListener('keydown', preventTabKey);
52
53
  }, [expanded]);
54
+ const ref = React.createRef();
55
+ const { addRef } = useContext(TOCContext);
56
+ useEffect(() => {
57
+ if ((ref === null || ref === void 0 ? void 0 : ref.current) && level === 0) {
58
+ addRef(ref.current);
59
+ }
60
+ }, []);
53
61
  return !casForbidden || casStatus === 'forbidden' ? (React.createElement(ExpandQuestionContext.Provider, { value: { expanded, toggleWriterMode } },
54
62
  React.createElement("div", { className: classNames('e-exam-question', {
55
63
  'e-level-0 e-pad-b-8 e-clearfix': level === 0,
56
64
  'e-mrg-l-8 e-mrg-y-4': level > 0,
57
65
  'e-expanded': expanded
58
- }), "data-annotation-anchor": displayNumber },
66
+ }), "data-annotation-anchor": displayNumber, "data-toc-id": `question-${displayNumber}`, ref: ref },
59
67
  React.createElement("div", { className: "anchor", id: `question-nr-${displayNumber}` }),
60
68
  expanded ? (React.createElement("div", { className: "full-screen", "data-full-screen-id": displayNumber },
61
69
  React.createElement("button", { className: "expand close", onClick: () => toggleWriterMode(false) },
@@ -1 +1 @@
1
- {"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../src/components/exam/Question.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionTitle.d.ts","sourceRoot":"","sources":["../../../src/components/exam/SectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAQjE,iBAAS,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,qBAoBtE;;AAED,wBAAuC"}
1
+ {"version":3,"file":"SectionTitle.d.ts","sourceRoot":"","sources":["../../../src/components/exam/SectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AASjE,iBAAS,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,qBAmCtE;;AAED,wBAAuC"}
@@ -1,16 +1,24 @@
1
- import React, { useContext } from 'react';
1
+ import React, { useContext, useEffect } from 'react';
2
2
  import { useExamTranslation } from '../../i18n';
3
3
  import { sectionTitleId } from '../../ids';
4
4
  import AnsweringInstructions from '../AnsweringInstructions';
5
5
  import { CommonExamContext } from '../context/CommonExamContext';
6
6
  import NotificationIcon from '../NotificationIcon';
7
7
  import { SectionContext } from '../context/SectionContext';
8
+ import { TOCContext } from '../context/TOCContext';
8
9
  function SectionTitle({ element, renderChildNodes }) {
9
10
  const { sections } = useContext(CommonExamContext);
10
11
  const { displayNumber, minAnswers, maxAnswers, childQuestions } = useContext(SectionContext);
11
12
  const { t } = useExamTranslation();
13
+ const ref = React.createRef();
14
+ const { addRef } = useContext(TOCContext);
15
+ useEffect(() => {
16
+ if (ref === null || ref === void 0 ? void 0 : ref.current) {
17
+ addRef(ref.current);
18
+ }
19
+ }, []);
12
20
  return (React.createElement(React.Fragment, null,
13
- element.hasChildNodes() && (React.createElement("h2", { className: "exam-section-title", id: sectionTitleId(displayNumber) },
21
+ element.hasChildNodes() && (React.createElement("h2", { className: "exam-section-title", id: sectionTitleId(displayNumber), "data-toc-id": `section-${displayNumber}`, ref: ref },
14
22
  sections.length > 1 && t('section', { displayNumber }),
15
23
  " ",
16
24
  renderChildNodes(element))),
@@ -1 +1 @@
1
- {"version":3,"file":"SectionTitle.js","sourceRoot":"","sources":["../../../src/components/exam/SectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,qBAAqB,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,SAAS,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAsB;IACrE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClD,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC5F,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAElC,OAAO,CACL;QACG,OAAO,CAAC,aAAa,EAAE,IAAI,CAC1B,4BAAI,SAAS,EAAC,oBAAoB,EAAC,EAAE,EAAE,cAAc,CAAC,aAAa,CAAC;YACjE,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,CAAC;;YAAG,gBAAgB,CAAC,OAAO,CAAC,CAChF,CACN;QACA,UAAU,IAAI,IAAI,IAAI,CACrB,8BAAM,SAAS,EAAC,mCAAmC;YACjD,oBAAC,gBAAgB,OAAG;YACpB,oBAAC,qBAAqB,IAAO,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,GAAM,CAC5F,CACR,CACA,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA"}
1
+ {"version":3,"file":"SectionTitle.js","sourceRoot":"","sources":["../../../src/components/exam/SectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,qBAAqB,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,SAAS,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAsB;IACrE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClD,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC5F,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAElC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAA;IAE7C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL;QACG,OAAO,CAAC,aAAa,EAAE,IAAI,CAC1B,4BACE,SAAS,EAAC,oBAAoB,EAC9B,EAAE,EAAE,cAAc,CAAC,aAAa,CAAC,iBACpB,WAAW,aAAa,EAAE,EACvC,GAAG,EAAE,GAAG;YAEP,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,CAAC;;YAAG,gBAAgB,CAAC,OAAO,CAAC,CAChF,CACN;QACA,UAAU,IAAI,IAAI,IAAI,CACrB,8BAAM,SAAS,EAAC,mCAAmC;YACjD,oBAAC,gBAAgB,OAAG;YACpB,oBAAC,qBAAqB,IAAO,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,GAAM,CAC5F,CACR,CACA,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ExamComponentProps } from '../../createRenderChildNodes';
3
+ export declare const TOCQuestion: React.FunctionComponent<ExamComponentProps>;
4
+ //# sourceMappingURL=TOCQuestion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TOCQuestion.d.ts","sourceRoot":"","sources":["../../../src/components/shared/TOCQuestion.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAWjE,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CA8GnE,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { faPaperclip } from '@fortawesome/free-solid-svg-icons';
2
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
3
+ import classNames from 'classnames';
4
+ import React, { useContext } from 'react';
5
+ import { useSelector } from 'react-redux';
6
+ import { findChildElement, getAttribute, query, queryAncestors, useIsElementInViewport } from '../../dom-utils';
7
+ import { useExamTranslation } from '../../i18n';
8
+ import { url } from '../../url';
9
+ import { CommonExamContext } from '../context/CommonExamContext';
10
+ import { QuestionContext } from '../context/QuestionContext';
11
+ import { Indicator } from './AnswerIndicator';
12
+ import { TOCContext } from '../context/TOCContext';
13
+ export const TOCQuestion = ({ element, renderChildNodes }) => {
14
+ var _a;
15
+ const { attachmentsURL } = useContext(CommonExamContext);
16
+ const { displayNumber, maxScore, level } = useContext(QuestionContext);
17
+ const { t } = useExamTranslation();
18
+ const showAttachmentLinks = true;
19
+ const { isInSidebar } = useContext(TOCContext);
20
+ const questionTitle = findChildElement(element, 'question-title');
21
+ const externalMaterial = showAttachmentLinks && displayNumber != null && query(element, 'external-material');
22
+ const subquestions = [];
23
+ let answersById = {};
24
+ let hasQuestionValidationError = false;
25
+ if (isInSidebar) {
26
+ const answers = useSelector((state) => state.answers);
27
+ answersById = (answers === null || answers === void 0 ? void 0 : answers.answersById) || {};
28
+ const subquestionNodes = element.querySelectorAll('[question-id]');
29
+ const questionValidationErrors = (_a = answers.validationErrors) === null || _a === void 0 ? void 0 : _a.filter(i => (i === null || i === void 0 ? void 0 : i.elementType) === 'question');
30
+ hasQuestionValidationError = !!(questionValidationErrors === null || questionValidationErrors === void 0 ? void 0 : questionValidationErrors.find(i => i.displayNumber === displayNumber));
31
+ subquestionNodes.forEach(e => {
32
+ var _a;
33
+ const id = Number(e.getAttribute('question-id'));
34
+ const type = e.getAttribute('type') || '';
35
+ const subQuestionDisplayNumber = e.getAttribute('display-number') || '';
36
+ const hasError = !!(questionValidationErrors === null || questionValidationErrors === void 0 ? void 0 : questionValidationErrors.find(i => i.displayNumber === subQuestionDisplayNumber));
37
+ const childQuestionHasError = questionValidationErrors
38
+ .flatMap(i => ('childQuestions' in i ? i.childQuestions : []))
39
+ .includes(subQuestionDisplayNumber);
40
+ const hasAnswer = !!((_a = answersById[id]) === null || _a === void 0 ? void 0 : _a.value);
41
+ if (id) {
42
+ subquestions.push({
43
+ id,
44
+ type,
45
+ error: hasError || (childQuestionHasError && hasAnswer),
46
+ displayNumber: Number(subQuestionDisplayNumber)
47
+ });
48
+ }
49
+ });
50
+ }
51
+ const subQuestionError = !!subquestions.find(i => i.error);
52
+ const subquestionsAnswered = subquestions === null || subquestions === void 0 ? void 0 : subquestions.filter(i => { var _a; return (_a = answersById[i.id]) === null || _a === void 0 ? void 0 : _a.value; }).length;
53
+ const maxAnswers = Number(element.getAttribute('max-answers'));
54
+ const requiredAnswers = maxAnswers || subquestions.length;
55
+ const isVisible = useIsElementInViewport('question', displayNumber);
56
+ return (React.createElement("li", { "data-list-number": `${displayNumber}.`, onClick: () => (isInSidebar ? (window.location.href = `#question-nr-${displayNumber}`) : undefined), className: classNames(`level-${level}`, { error: hasQuestionValidationError, current: isVisible }) },
57
+ React.createElement("span", { className: "e-column e-question-title" },
58
+ React.createElement("a", { href: url('', { hash: `question-nr-${displayNumber}` }), tabIndex: isInSidebar ? -1 : undefined },
59
+ React.createElement("span", null, renderChildNodes(questionTitle)))),
60
+ React.createElement("div", { className: classNames('numeric-answer-indicator', {
61
+ error: subQuestionError,
62
+ ok: subquestionsAnswered === requiredAnswers
63
+ }) },
64
+ subquestionsAnswered,
65
+ "/",
66
+ requiredAnswers),
67
+ !isInSidebar && externalMaterial && (React.createElement("span", { className: "e-column e-column--narrow e-external-material" },
68
+ React.createElement("a", { href: url(attachmentsURL, {
69
+ hash: getAttribute(queryAncestors(externalMaterial, 'question'), 'display-number')
70
+ }), target: "attachments" }, t('material')))),
71
+ React.createElement("span", { className: "e-column e-column--narrow table-of-contents--score-column" }, t('points', { count: maxScore })),
72
+ isInSidebar && (React.createElement("span", { className: "e-column e-column--narrow e-external-material" }, externalMaterial && React.createElement(FontAwesomeIcon, { size: "sm", icon: faPaperclip, fixedWidth: true }))),
73
+ React.createElement("div", { className: "answers" },
74
+ subquestions.map(i => (React.createElement(Indicator, { key: i.id, type: i.type, id: i.id, answer: answersById[i.id], error: i.error, displayNumber: i.displayNumber }))),
75
+ ' ')));
76
+ };
77
+ //# sourceMappingURL=TOCQuestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TOCQuestion.js","sourceRoot":"","sources":["../../../src/components/shared/TOCQuestion.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ExamComponentProps } from '../../createRenderChildNodes';
3
+ import { AnswersState } from '../../store/answers/reducer';
4
+ export declare const TOCSection: React.FunctionComponent<ExamComponentProps & {
5
+ answers: AnswersState;
6
+ }>;
7
+ //# sourceMappingURL=TOCSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TOCSection.d.ts","sourceRoot":"","sources":["../../../src/components/shared/TOCSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAiB,MAAM,8BAA8B,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAM1D,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,GAAG;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAwB9F,CAAA"}
@@ -0,0 +1,15 @@
1
+ import React, { useContext } from 'react';
2
+ import { SectionContext } from '../context/SectionContext';
3
+ import { findChildElement } from '../../dom-utils';
4
+ import { TOCSectionTitle } from './TOCSectionTitle';
5
+ import { tocSectionTitleId } from '../../ids';
6
+ export const TOCSection = ({ element, answers, renderChildNodes }) => {
7
+ const { displayNumber } = useContext(SectionContext);
8
+ const sectionTitle = findChildElement(element, 'section-title');
9
+ return (React.createElement("li", { "data-section-id": displayNumber },
10
+ sectionTitle && (React.createElement(TOCSectionTitle, { element: sectionTitle,
11
+ renderChildNodes,
12
+ answers })),
13
+ React.createElement("ol", { className: "e-list-data e-pad-l-0", "aria-labelledby": sectionTitle && tocSectionTitleId(displayNumber) }, renderChildNodes(element, 1 /* RenderOptions.SkipHTML */))));
14
+ };
15
+ //# sourceMappingURL=TOCSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TOCSection.js","sourceRoot":"","sources":["../../../src/components/shared/TOCSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,MAAM,CAAC,MAAM,UAAU,GAA4E,CAAC,EAClG,OAAO,EACP,OAAO,EACP,gBAAgB,EACjB,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;IAE/D,OAAO,CACL,+CAAqB,aAAa;QAC/B,YAAY,IAAI,CACf,oBAAC,eAAe,IAEZ,OAAO,EAAE,YAAY;YACrB,gBAAgB;YAChB,OAAO,GAET,CACH;QACD,4BAAI,SAAS,EAAC,uBAAuB,qBAAkB,YAAY,IAAI,iBAAiB,CAAC,aAAa,CAAC,IACpG,gBAAgB,CAAC,OAAO,iCAAyB,CAC/C,CACF,CACN,CAAA;AACH,CAAC,CAAA"}