@digabi/exam-engine-core 20.2.2 → 20.2.4-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/__tests__/testExamRendering.js +37 -0
- package/dist/__tests__/testExamRendering.js.map +1 -1
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/components/context/TOCContext.d.ts +9 -0
- package/dist/components/context/TOCContext.d.ts.map +1 -0
- package/dist/components/context/TOCContext.js +3 -0
- package/dist/components/context/TOCContext.js.map +1 -0
- package/dist/components/exam/Exam.d.ts +1 -1
- package/dist/components/exam/Exam.d.ts.map +1 -1
- package/dist/components/exam/Exam.js +97 -108
- package/dist/components/exam/Exam.js.map +1 -1
- package/dist/components/exam/Question.d.ts.map +1 -1
- package/dist/components/exam/Question.js +14 -6
- package/dist/components/exam/Question.js.map +1 -1
- package/dist/components/exam/SectionTitle.d.ts.map +1 -1
- package/dist/components/exam/SectionTitle.js +10 -2
- package/dist/components/exam/SectionTitle.js.map +1 -1
- package/dist/components/shared/TOCQuestion.d.ts +4 -0
- package/dist/components/shared/TOCQuestion.d.ts.map +1 -0
- package/dist/components/shared/TOCQuestion.js +77 -0
- package/dist/components/shared/TOCQuestion.js.map +1 -0
- package/dist/components/shared/TOCSection.d.ts +7 -0
- package/dist/components/shared/TOCSection.d.ts.map +1 -0
- package/dist/components/shared/TOCSection.js +15 -0
- package/dist/components/shared/TOCSection.js.map +1 -0
- package/dist/components/shared/TOCSectionTitle.d.ts +4 -0
- package/dist/components/shared/TOCSectionTitle.d.ts.map +1 -0
- package/dist/components/shared/TOCSectionTitle.js +34 -0
- package/dist/components/shared/TOCSectionTitle.js.map +1 -0
- package/dist/components/shared/TableOfContents.d.ts.map +1 -1
- package/dist/components/shared/TableOfContents.js +30 -104
- package/dist/components/shared/TableOfContents.js.map +1 -1
- package/dist/components/shared/VersionNumber.d.ts.map +1 -1
- package/dist/components/shared/VersionNumber.js +7 -3
- package/dist/components/shared/VersionNumber.js.map +1 -1
- package/dist/dom-utils.d.ts +1 -0
- package/dist/dom-utils.d.ts.map +1 -1
- package/dist/dom-utils.js +17 -1
- package/dist/dom-utils.js.map +1 -1
- package/dist/main-bundle.js +1 -1
- package/dist/main.css +1 -1
- package/package.json +2 -2
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TOCSectionTitle.d.ts","sourceRoot":"","sources":["../../../src/components/shared/TOCSectionTitle.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAUjE,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAyCvE,CAAA"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import classNames from 'classnames';
|
2
|
+
import React, { useContext } from 'react';
|
3
|
+
import { useSelector } from 'react-redux';
|
4
|
+
import { useIsElementInViewport } from '../../dom-utils';
|
5
|
+
import { useExamTranslation } from '../../i18n';
|
6
|
+
import { tocSectionTitleId } from '../../ids';
|
7
|
+
import AnsweringInstructions from '../AnsweringInstructions';
|
8
|
+
import { CommonExamContext } from '../context/CommonExamContext';
|
9
|
+
import { SectionContext } from '../context/SectionContext';
|
10
|
+
import { TOCContext } from '../context/TOCContext';
|
11
|
+
export const TOCSectionTitle = ({ element, renderChildNodes }) => {
|
12
|
+
const { sections } = useContext(CommonExamContext);
|
13
|
+
const { childQuestions, displayNumber, minAnswers, maxAnswers } = useContext(SectionContext);
|
14
|
+
const { t } = useExamTranslation();
|
15
|
+
const { isInSidebar } = useContext(TOCContext);
|
16
|
+
const showAnsweringInstructions = true;
|
17
|
+
const showSectionValidationErrors = isInSidebar &&
|
18
|
+
!!useSelector((state) => { var _a, _b; return (_b = (_a = state.answers) === null || _a === void 0 ? void 0 : _a.validationErrors) === null || _b === void 0 ? void 0 : _b.find(i => i.displayNumber === displayNumber && (i === null || i === void 0 ? void 0 : i.elementType) === 'section'); });
|
19
|
+
const isVisible = useIsElementInViewport('section', displayNumber);
|
20
|
+
return (React.createElement("div", { className: isVisible ? 'current' : '' },
|
21
|
+
element.hasChildNodes() && (React.createElement("div", { className: "toc-section-header-container" },
|
22
|
+
React.createElement("h4", { className: "toc-section-header", id: tocSectionTitleId(displayNumber) },
|
23
|
+
sections.length > 1 && t('section', { displayNumber }),
|
24
|
+
" ",
|
25
|
+
renderChildNodes(element)))),
|
26
|
+
showAnsweringInstructions && maxAnswers && (React.createElement("div", { style: { display: 'grid' }, className: `answer-instructions-container section-${displayNumber}` },
|
27
|
+
React.createElement("div", { className: classNames('answer-instructions', {
|
28
|
+
error: showSectionValidationErrors
|
29
|
+
}) },
|
30
|
+
showSectionValidationErrors && React.createElement("div", { className: "error-mark" }, "!"),
|
31
|
+
React.createElement("span", { className: "error-reason" },
|
32
|
+
React.createElement(AnsweringInstructions, { maxAnswers, minAnswers, childQuestions, elementType: 'toc-section' })))))));
|
33
|
+
};
|
34
|
+
//# sourceMappingURL=TOCSectionTitle.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TOCSectionTitle.js","sourceRoot":"","sources":["../../../src/components/shared/TOCSectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,qBAAqB,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,CAAC,MAAM,eAAe,GAAgD,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC5G,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClD,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC5F,MAAM,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAClC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,yBAAyB,GAAG,IAAI,CAAA;IAEtC,MAAM,2BAA2B,GAC/B,WAAW;QACX,CAAC,CAAC,WAAW,CAAC,CAAC,KAAgC,EAAE,EAAE,eACjD,OAAA,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,gBAAgB,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,WAAW,MAAK,SAAS,CAAC,CAAA,EAAA,CAC9G,CAAA;IAEH,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAElE,OAAO,CACL,6BAAK,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACvC,OAAO,CAAC,aAAa,EAAE,IAAI,CAC1B,6BAAK,SAAS,EAAC,8BAA8B;YAC3C,4BAAI,SAAS,EAAC,oBAAoB,EAAC,EAAE,EAAE,iBAAiB,CAAC,aAAa,CAAC;gBACpE,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,CAAC;;gBAAG,gBAAgB,CAAC,OAAO,CAAC,CAChF,CACD,CACP;QAEA,yBAAyB,IAAI,UAAU,IAAI,CAC1C,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,yCAAyC,aAAa,EAAE;YAClG,6BACE,SAAS,EAAE,UAAU,CAAC,qBAAqB,EAAE;oBAC3C,KAAK,EAAE,2BAA2B;iBACnC,CAAC;gBAED,2BAA2B,IAAI,6BAAK,SAAS,EAAC,YAAY,QAAQ;gBACnE,8BAAM,SAAS,EAAC,cAAc;oBAC5B,oBAAC,qBAAqB,IAAO,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,GAAM,CAChG,CACH,CACF,CACP,CACG,CACP,CAAA;AACH,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../../src/components/shared/TableOfContents.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../../src/components/shared/TableOfContents.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAEpD,OAAO,EAA0B,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAWzF,eAAO,MAAM,iBAAiB,YAAa;IACzC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,yBAAyB,EAAE,OAAO,CAAA;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,mDAsEA,CAAA"}
|
@@ -1,110 +1,17 @@
|
|
1
|
-
import
|
1
|
+
import classNames from 'classnames';
|
2
|
+
import React, { useContext, useEffect } from 'react';
|
3
|
+
import { useSelector } from 'react-redux';
|
2
4
|
import { createRenderChildNodes } from '../../createRenderChildNodes';
|
3
|
-
import {
|
5
|
+
import { getNumericAttribute } from '../../dom-utils';
|
4
6
|
import { useExamTranslation } from '../../i18n';
|
5
|
-
import {
|
6
|
-
import { url } from '../../url';
|
7
|
-
import AnsweringInstructions from '../AnsweringInstructions';
|
7
|
+
import { tocTitleId } from '../../ids';
|
8
8
|
import { CommonExamContext } from '../context/CommonExamContext';
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import classNames from 'classnames';
|
14
|
-
import { Indicator } from './AnswerIndicator';
|
15
|
-
import { useSelector } from 'react-redux';
|
9
|
+
import { withQuestionContext } from '../context/QuestionContext';
|
10
|
+
import { withSectionContext } from '../context/SectionContext';
|
11
|
+
import { TOCQuestion } from './TOCQuestion';
|
12
|
+
import { TOCSection } from './TOCSection';
|
16
13
|
export const mkTableOfContents = (options) => {
|
17
|
-
const {
|
18
|
-
const TOCSectionTitle = ({ element }) => {
|
19
|
-
const { sections } = useContext(CommonExamContext);
|
20
|
-
const { childQuestions, displayNumber, minAnswers, maxAnswers } = useContext(SectionContext);
|
21
|
-
const { t } = useExamTranslation();
|
22
|
-
const showSectionValidationErrors = isInSidebar &&
|
23
|
-
!!useSelector((state) => { var _a, _b; return (_b = (_a = state.answers) === null || _a === void 0 ? void 0 : _a.validationErrors) === null || _b === void 0 ? void 0 : _b.find(i => i.displayNumber === displayNumber && (i === null || i === void 0 ? void 0 : i.elementType) === 'section'); });
|
24
|
-
return (React.createElement(React.Fragment, null,
|
25
|
-
element.hasChildNodes() && (React.createElement("div", { className: "toc-section-header-container" },
|
26
|
-
React.createElement("h4", { className: "toc-section-header", id: tocSectionTitleId(displayNumber) },
|
27
|
-
sections.length > 1 && t('section', { displayNumber }),
|
28
|
-
" ",
|
29
|
-
renderChildNodes(element)))),
|
30
|
-
showAnsweringInstructions && maxAnswers && (React.createElement("div", { style: { display: 'grid' }, className: `answer-instructions-container section-${displayNumber}` },
|
31
|
-
React.createElement("div", { className: classNames('answer-instructions', {
|
32
|
-
error: showSectionValidationErrors
|
33
|
-
}) },
|
34
|
-
showSectionValidationErrors && React.createElement("div", { className: "error-mark" }, "!"),
|
35
|
-
React.createElement("span", { className: "error-reason" },
|
36
|
-
React.createElement(AnsweringInstructions, { maxAnswers, minAnswers, childQuestions, elementType: 'toc-section' })))))));
|
37
|
-
};
|
38
|
-
const TOCSection = ({ element, answers, renderChildNodes }) => {
|
39
|
-
const { displayNumber } = useContext(SectionContext);
|
40
|
-
const sectionTitle = findChildElement(element, 'section-title');
|
41
|
-
return (React.createElement("li", { "data-section-id": displayNumber },
|
42
|
-
sectionTitle && (React.createElement(TOCSectionTitle, { element: sectionTitle,
|
43
|
-
renderChildNodes,
|
44
|
-
answers })),
|
45
|
-
React.createElement("ol", { className: "e-list-data e-pad-l-0", "aria-labelledby": sectionTitle && tocSectionTitleId(displayNumber) }, renderChildNodes(element, 1 /* RenderOptions.SkipHTML */))));
|
46
|
-
};
|
47
|
-
const TOCQuestion = ({ element }) => {
|
48
|
-
var _a;
|
49
|
-
const { attachmentsURL } = useContext(CommonExamContext);
|
50
|
-
const { displayNumber, maxScore, level } = useContext(QuestionContext);
|
51
|
-
const { t } = useExamTranslation();
|
52
|
-
const questionTitle = findChildElement(element, 'question-title');
|
53
|
-
const externalMaterial = showAttachmentLinks && displayNumber != null && query(element, 'external-material');
|
54
|
-
const subquestions = [];
|
55
|
-
let answersById = {};
|
56
|
-
let hasQuestionValidationError = false;
|
57
|
-
if (isInSidebar) {
|
58
|
-
const answers = useSelector((state) => state.answers);
|
59
|
-
answersById = (answers === null || answers === void 0 ? void 0 : answers.answersById) || {};
|
60
|
-
const subquestionNodes = element.querySelectorAll('[question-id]');
|
61
|
-
const questionValidationErrors = (_a = answers.validationErrors) === null || _a === void 0 ? void 0 : _a.filter(i => (i === null || i === void 0 ? void 0 : i.elementType) === 'question');
|
62
|
-
hasQuestionValidationError = !!(questionValidationErrors === null || questionValidationErrors === void 0 ? void 0 : questionValidationErrors.find(i => i.displayNumber === displayNumber));
|
63
|
-
subquestionNodes.forEach(e => {
|
64
|
-
var _a;
|
65
|
-
const id = Number(e.getAttribute('question-id'));
|
66
|
-
const type = e.getAttribute('type') || '';
|
67
|
-
const subQuestionDisplayNumber = e.getAttribute('display-number') || '';
|
68
|
-
const hasError = !!(questionValidationErrors === null || questionValidationErrors === void 0 ? void 0 : questionValidationErrors.find(i => i.displayNumber === subQuestionDisplayNumber));
|
69
|
-
const childQuestionHasError = questionValidationErrors
|
70
|
-
.flatMap(i => ('childQuestions' in i ? i.childQuestions : []))
|
71
|
-
.includes(subQuestionDisplayNumber);
|
72
|
-
const hasAnswer = !!((_a = answersById[id]) === null || _a === void 0 ? void 0 : _a.value);
|
73
|
-
if (id) {
|
74
|
-
subquestions.push({
|
75
|
-
id,
|
76
|
-
type,
|
77
|
-
error: hasError || (childQuestionHasError && hasAnswer),
|
78
|
-
displayNumber: Number(subQuestionDisplayNumber)
|
79
|
-
});
|
80
|
-
}
|
81
|
-
});
|
82
|
-
}
|
83
|
-
const subQuestionError = !!subquestions.find(i => i.error);
|
84
|
-
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;
|
85
|
-
const maxAnswers = Number(element.getAttribute('max-answers'));
|
86
|
-
const requiredAnswers = maxAnswers || subquestions.length;
|
87
|
-
return (React.createElement("li", { "data-list-number": `${displayNumber}.`, onClick: () => (isInSidebar ? (window.location.href = `#question-nr-${displayNumber}`) : undefined), className: classNames(`level-${level}`, { error: hasQuestionValidationError }) },
|
88
|
-
React.createElement("span", { className: "e-column e-question-title" },
|
89
|
-
React.createElement("a", { href: url('', { hash: `question-nr-${displayNumber}` }), tabIndex: isInSidebar ? -1 : undefined },
|
90
|
-
React.createElement("span", null, renderChildNodes(questionTitle)))),
|
91
|
-
React.createElement("div", { className: classNames('numeric-answer-indicator', {
|
92
|
-
error: subQuestionError,
|
93
|
-
ok: subquestionsAnswered === requiredAnswers
|
94
|
-
}) },
|
95
|
-
subquestionsAnswered,
|
96
|
-
"/",
|
97
|
-
requiredAnswers),
|
98
|
-
!isInSidebar && externalMaterial && (React.createElement("span", { className: "e-column e-column--narrow e-external-material" },
|
99
|
-
React.createElement("a", { href: url(attachmentsURL, {
|
100
|
-
hash: getAttribute(queryAncestors(externalMaterial, 'question'), 'display-number')
|
101
|
-
}), target: "attachments" }, t('material')))),
|
102
|
-
React.createElement("span", { className: "e-column e-column--narrow table-of-contents--score-column" }, t('points', { count: maxScore })),
|
103
|
-
isInSidebar && (React.createElement("span", { className: "e-column e-column--narrow e-external-material" }, externalMaterial && React.createElement(FontAwesomeIcon, { size: "sm", icon: faPaperclip, fixedWidth: true }))),
|
104
|
-
React.createElement("div", { className: "answers" },
|
105
|
-
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 }))),
|
106
|
-
' ')));
|
107
|
-
};
|
14
|
+
const { showAnsweringInstructions, isInSidebar } = options;
|
108
15
|
const renderChildNodes = createRenderChildNodes({
|
109
16
|
section: withSectionContext(TOCSection),
|
110
17
|
question: withQuestionContext(TOCQuestion)
|
@@ -115,7 +22,26 @@ export const mkTableOfContents = (options) => {
|
|
115
22
|
const maxAnswers = getNumericAttribute(root, 'max-answers');
|
116
23
|
const showExamValidationErrors = isInSidebar &&
|
117
24
|
!!useSelector((state) => { var _a; return (_a = state.answers.validationErrors) === null || _a === void 0 ? void 0 : _a.find(i => (i === null || i === void 0 ? void 0 : i.elementType) === 'exam'); });
|
118
|
-
|
25
|
+
const ref = React.createRef();
|
26
|
+
useEffect(() => {
|
27
|
+
var _a;
|
28
|
+
// Prevent scrolling the whole page when scrolling the TOC
|
29
|
+
const handleTOCScroll = (e) => {
|
30
|
+
const toc = e.currentTarget;
|
31
|
+
if (toc.scrollHeight <= toc.clientHeight) {
|
32
|
+
return;
|
33
|
+
}
|
34
|
+
const deltaY = e.deltaY;
|
35
|
+
const hitsTop = deltaY < 0 && toc.scrollTop === 0;
|
36
|
+
const hitsBottom = deltaY > 0 && toc.scrollTop >= toc.scrollHeight - toc.clientHeight;
|
37
|
+
if (hitsTop || hitsBottom) {
|
38
|
+
e.preventDefault();
|
39
|
+
}
|
40
|
+
};
|
41
|
+
(_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener('wheel', handleTOCScroll, { passive: false });
|
42
|
+
return () => { var _a; return (_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('wheel', handleTOCScroll); };
|
43
|
+
}, []);
|
44
|
+
return (React.createElement("nav", { className: "table-of-contents", "aria-labelledby": tocTitleId, ref: ref },
|
119
45
|
!isInSidebar && (React.createElement("h2", { id: tocTitleId },
|
120
46
|
React.createElement("span", { className: "e-toc-heading" }, t('toc-heading')))),
|
121
47
|
showAnsweringInstructions && maxAnswers && (React.createElement("div", { style: { display: 'grid' } },
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TableOfContents.js","sourceRoot":"","sources":["../../../src/components/shared/TableOfContents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"TableOfContents.js","sourceRoot":"","sources":["../../../src/components/shared/TableOfContents.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VersionNumber.d.ts","sourceRoot":"","sources":["../../../src/components/shared/VersionNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"VersionNumber.d.ts","sourceRoot":"","sources":["../../../src/components/shared/VersionNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAGjC,CAAA"}
|
@@ -1,6 +1,10 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
import * as _ from 'lodash-es';
|
2
3
|
import lernaConfig from '../../../../../lerna.json';
|
3
|
-
export const VersionNumber = () =>
|
4
|
-
|
5
|
-
|
4
|
+
export const VersionNumber = () => {
|
5
|
+
const testVersion = _.get(window, 'TEST_VERSION_NUMBER');
|
6
|
+
return React.createElement("span", null,
|
7
|
+
"EE v.",
|
8
|
+
testVersion || lernaConfig.version);
|
9
|
+
};
|
6
10
|
//# sourceMappingURL=VersionNumber.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VersionNumber.js","sourceRoot":"","sources":["../../../src/components/shared/VersionNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,WAAW,MAAM,2BAA2B,CAAA;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAa,GAAG,EAAE,CAAC;;
|
1
|
+
{"version":3,"file":"VersionNumber.js","sourceRoot":"","sources":["../../../src/components/shared/VersionNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,WAAW,MAAM,2BAA2B,CAAA;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAa,GAAG,EAAE;IAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;IACxD,OAAO;;QAAY,WAAW,IAAI,WAAW,CAAC,OAAO,CAAQ,CAAA;AAC/D,CAAC,CAAA"}
|
package/dist/dom-utils.d.ts
CHANGED
@@ -14,5 +14,6 @@ export declare function findChildrenAnswers(element: Element): Element[];
|
|
14
14
|
export declare function hasSiblingQuestions(answer: Element): boolean | undefined;
|
15
15
|
export declare function createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, properties?: Record<string, string> | null, ...children: Array<string | ChildNode>): HTMLElementTagNameMap[K];
|
16
16
|
export declare function setProperties(element: HTMLElement, properties?: Record<string, string> | null): void;
|
17
|
+
export declare function useIsElementInViewport(elementType: 'question' | 'section', displayNumber: string): boolean;
|
17
18
|
export {};
|
18
19
|
//# sourceMappingURL=dom-utils.d.ts.map
|
package/dist/dom-utils.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dom-utils.d.ts","sourceRoot":"","sources":["../src/dom-utils.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"dom-utils.d.ts","sourceRoot":"","sources":["../src/dom-utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,WAAW,CAAA;AAE5B,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAU/E;AAED,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAA;AAUnE,wBAAgB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAiB5E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,UAAO,GAAG,OAAO,EAAE,CAoBrF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAQxF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAS1F;AACD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAEpF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAOtG;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAO1G;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAE/D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,uBAIlD;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,qBAAqB,EACjE,OAAO,EAAE,CAAC,EACV,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAC1C,GAAG,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GACrC,qBAAqB,CAAC,CAAC,CAAC,CAK1B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAWpG;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,UAAU,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,WAehG"}
|
package/dist/dom-utils.js
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
import { ExamNamespaceURI } from './createRenderChildNodes';
|
2
1
|
import * as _ from 'lodash-es';
|
2
|
+
import { ExamNamespaceURI } from './createRenderChildNodes';
|
3
|
+
import { useContext, useEffect, useState } from 'react';
|
4
|
+
import { TOCContext } from './components/context/TOCContext';
|
3
5
|
export const NBSP = '\u00A0';
|
4
6
|
export function parentElements(element, selector) {
|
5
7
|
const predicate = selector != null ? mkPredicate(selector) : undefined;
|
@@ -129,4 +131,18 @@ export function setProperties(element, properties) {
|
|
129
131
|
}
|
130
132
|
});
|
131
133
|
}
|
134
|
+
export function useIsElementInViewport(elementType, displayNumber) {
|
135
|
+
const { visibleTOCElements } = useContext(TOCContext);
|
136
|
+
const [isVisible, setIsVisible] = useState(false);
|
137
|
+
const id = `${elementType}-${displayNumber}`;
|
138
|
+
useEffect(() => {
|
139
|
+
if ((visibleTOCElements === null || visibleTOCElements === void 0 ? void 0 : visibleTOCElements.includes(id)) && !isVisible) {
|
140
|
+
setIsVisible(true);
|
141
|
+
}
|
142
|
+
else if (!(visibleTOCElements === null || visibleTOCElements === void 0 ? void 0 : visibleTOCElements.includes(id)) && isVisible) {
|
143
|
+
setIsVisible(false);
|
144
|
+
}
|
145
|
+
}, [visibleTOCElements]);
|
146
|
+
return isVisible;
|
147
|
+
}
|
132
148
|
//# sourceMappingURL=dom-utils.js.map
|
package/dist/dom-utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dom-utils.js","sourceRoot":"","sources":["../src/dom-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,
|
1
|
+
{"version":3,"file":"dom-utils.js","sourceRoot":"","sources":["../src/dom-utils.ts"],"names":[],"mappings":"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"}
|