@digabi/exam-engine-core 23.22.4 → 23.22.5-alpha.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"largeImageDetector.d.ts","sourceRoot":"","sources":["../../../src/components/grading/largeImageDetector.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,kBAWxC;AACD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,QAUvD"}
1
+ {"version":3,"file":"largeImageDetector.d.ts","sourceRoot":"","sources":["../../../src/components/grading/largeImageDetector.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,kBAWxC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,QAUvD"}
@@ -20,26 +20,37 @@ export function updateLargeImageWarnings(answer) {
20
20
  setTimeout(() => updateImageStatus(img), 0);
21
21
  }
22
22
  else {
23
- img.addEventListener('load', () => updateImageStatus(img));
23
+ img.addEventListener('load', () => updateImageStatus(img), { once: true });
24
24
  }
25
25
  });
26
26
  }
27
27
  function updateImageStatus(img) {
28
+ var _a;
28
29
  remainingImages--;
29
30
  const wrapper = img.parentElement;
30
31
  const nextSibling = wrapper === null || wrapper === void 0 ? void 0 : wrapper.nextSibling;
31
- const hasFullSizeLink = nextSibling instanceof HTMLElement && nextSibling.classList.contains('full-size-image');
32
- const isLargeImage = img.naturalWidth > img.width;
32
+ const fullSizeLinkContainer = nextSibling instanceof HTMLElement && nextSibling.classList.contains('full-size-image') ? nextSibling : undefined;
33
+ const isLargeImage = img.naturalWidth > img.width + 1; // allow for rounding errors
33
34
  wrapper === null || wrapper === void 0 ? void 0 : wrapper.classList.toggle('e-large-image', isLargeImage);
34
35
  if (isLargeImage) {
35
- if (!hasFullSizeLink) {
36
- wrapper === null || wrapper === void 0 ? void 0 : wrapper.insertAdjacentHTML('afterend', `<div class="full-size-image"><a target="_blank" href="${img.src}"></a>`);
36
+ const link = (_a = fullSizeLinkContainer === null || fullSizeLinkContainer === void 0 ? void 0 : fullSizeLinkContainer.querySelector('a')) !== null && _a !== void 0 ? _a : createFullSizeImageLink();
37
+ updateFullSizeImageLink(link, img);
38
+ if (!fullSizeLinkContainer) {
39
+ const container = document.createElement('div');
40
+ container.className = 'full-size-image';
41
+ container.appendChild(link);
42
+ wrapper === null || wrapper === void 0 ? void 0 : wrapper.after(container);
37
43
  }
38
44
  }
39
45
  else {
40
- if (hasFullSizeLink) {
41
- nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.remove();
42
- }
46
+ fullSizeLinkContainer === null || fullSizeLinkContainer === void 0 ? void 0 : fullSizeLinkContainer.remove();
43
47
  }
44
48
  }
49
+ function createFullSizeImageLink() {
50
+ return document.createElement('a');
51
+ }
52
+ function updateFullSizeImageLink(link, img) {
53
+ link.href = img.src;
54
+ link.target = '_blank';
55
+ }
45
56
  //# sourceMappingURL=largeImageDetector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"largeImageDetector.js","sourceRoot":"","sources":["../../../src/components/grading/largeImageDetector.ts"],"names":[],"mappings":"AAAA,IAAI,eAAuB,CAAA;AAE3B,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,KAAK,GAAG,IAAI,CAAA;IAChB,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,EAAE,CAAA;QACP,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAClC,CAAC;AACD,MAAM,UAAU,wBAAwB,CAAC,MAAe;IACtD,MAAM,MAAM,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,KAAK,CAAC,KAAI,EAAE,CAAA;IACpD,eAAe,GAAG,MAAM,CAAC,MAAM,CAAA;IAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACnB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAqB;IAC9C,eAAe,EAAE,CAAA;IACjB,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAA;IACjC,MAAM,WAAW,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA;IACxC,MAAM,eAAe,GAAG,WAAW,YAAY,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IAC/G,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAA;IACjD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;IACxD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAC,UAAU,EAAE,yDAAyD,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;QACnH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,eAAe,EAAE,CAAC;YACpB,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"largeImageDetector.js","sourceRoot":"","sources":["../../../src/components/grading/largeImageDetector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiLineAnswer.d.ts","sourceRoot":"","sources":["../../../src/components/results/MultiLineAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAM7B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACpD,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CA4BA,CAAA"}
1
+ {"version":3,"file":"MultiLineAnswer.d.ts","sourceRoot":"","sources":["../../../src/components/results/MultiLineAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAO7B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACpD,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CA8BA,CAAA"}
@@ -1,14 +1,17 @@
1
1
  import React, { useLayoutEffect, useRef } from 'react';
2
2
  import { useExamTranslation } from '../../i18n';
3
- import { renderAnnotations } from '../../renderAnnotations';
3
+ import { renderAnnotations, wrapAllImages } from '../../renderAnnotations';
4
4
  import { ScreenReaderOnly } from '../ScreenReaderOnly';
5
5
  import classNames from 'classnames';
6
+ import { updateLargeImageWarnings } from '../grading/largeImageDetector';
6
7
  export const MultiLineAnswer = ({ type, score, value }) => {
7
8
  const { t, i18n } = useExamTranslation();
8
9
  const answerRef = useRef(null);
9
10
  useLayoutEffect(() => {
10
11
  var _a, _b, _c, _d;
11
12
  if (answerRef.current) {
13
+ wrapAllImages(answerRef.current);
14
+ updateLargeImageWarnings(answerRef.current);
12
15
  renderAnnotations(answerRef.current, (_b = (_a = score === null || score === void 0 ? void 0 : score.pregrading) === null || _a === void 0 ? void 0 : _a.annotations) !== null && _b !== void 0 ? _b : [], (_d = (_c = score === null || score === void 0 ? void 0 : score.censoring) === null || _c === void 0 ? void 0 : _c.annotations) !== null && _d !== void 0 ? _d : []);
13
16
  }
14
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MultiLineAnswer.js","sourceRoot":"","sources":["../../../src/components/results/MultiLineAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,MAAM,CAAC,MAAM,eAAe,GAIvB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE9C,eAAe,CAAC,GAAG,EAAE;;QACnB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,iBAAiB,CAAC,SAAS,CAAC,OAAO,EAAE,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,WAAW,mCAAI,EAAE,EAAE,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,WAAW,mCAAI,EAAE,CAAC,CAAA;QACjH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,6BACE,SAAS,EAAE,UAAU,CAAC,qEAAqE,EAAE;YAC3F,WAAW,EAAE,CAAC,KAAK;SACpB,CAAC,sBACgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,SAAS;QAEhF,oBAAC,gBAAgB,QAAE,CAAC,CAAC,4BAA4B,CAAC,CAAoB;QACrE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CACtB,6BAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,GAAI,CAC1E,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,YAAY,EAAC,GAAG,EAAE,SAAS,IACvC,KAAK,CACF,CACP;QACD,oBAAC,gBAAgB,QAAE,CAAC,CAAC,0BAA0B,CAAC,CAAoB,CAChE,CACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"MultiLineAnswer.js","sourceRoot":"","sources":["../../../src/components/results/MultiLineAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAExE,MAAM,CAAC,MAAM,eAAe,GAIvB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IAC9B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE9C,eAAe,CAAC,GAAG,EAAE;;QACnB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAChC,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC3C,iBAAiB,CAAC,SAAS,CAAC,OAAO,EAAE,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,WAAW,mCAAI,EAAE,EAAE,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,WAAW,mCAAI,EAAE,CAAC,CAAA;QACjH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,6BACE,SAAS,EAAE,UAAU,CAAC,qEAAqE,EAAE;YAC3F,WAAW,EAAE,CAAC,KAAK;SACpB,CAAC,sBACgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,SAAS;QAEhF,oBAAC,gBAAgB,QAAE,CAAC,CAAC,4BAA4B,CAAC,CAAoB;QACrE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CACtB,6BAAK,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,GAAI,CAC1E,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,YAAY,EAAC,GAAG,EAAE,SAAS,IACvC,KAAK,CACF,CACP;QACD,oBAAC,gBAAgB,QAAE,CAAC,CAAC,0BAA0B,CAAC,CAAoB,CAChE,CACP,CAAA;AACH,CAAC,CAAA"}