@digabi/exam-engine-core 23.14.4 → 23.14.5
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.
- package/dist/__tests__/playwright/exam/AudioAnswer.test.js +20 -0
- package/dist/__tests__/playwright/exam/AudioAnswer.test.js.map +1 -1
- package/dist/__tests__/playwright/exam/AudioPlayer.test.js +4 -5
- package/dist/__tests__/playwright/exam/AudioPlayer.test.js.map +1 -1
- package/dist/__tests__/playwright/pages/AudioPlayer.page.d.ts +2 -1
- package/dist/__tests__/playwright/pages/AudioPlayer.page.d.ts.map +1 -1
- package/dist/__tests__/playwright/pages/AudioPlayer.page.js +2 -1
- package/dist/__tests__/playwright/pages/AudioPlayer.page.js.map +1 -1
- package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.d.ts.map +1 -1
- package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.js +1 -2
- package/dist/__tests__/playwright/stories/exam/AudioAnswer.story.js.map +1 -1
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/components/results/AudioAnswer.d.ts.map +1 -1
- package/dist/components/results/AudioAnswer.js +3 -2
- package/dist/components/results/AudioAnswer.js.map +1 -1
- package/dist/components/shared/internal/AudioPlayer.d.ts.map +1 -1
- package/dist/components/shared/internal/AudioPlayer.js +3 -0
- package/dist/components/shared/internal/AudioPlayer.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/indexedDBExamServerAPI.d.ts +4 -0
- package/dist/indexedDBExamServerAPI.d.ts.map +1 -0
- package/dist/indexedDBExamServerAPI.js +97 -0
- package/dist/indexedDBExamServerAPI.js.map +1 -0
- package/dist/main-bundle.js +13 -13
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AudioAnswer.d.ts","sourceRoot":"","sources":["../../../src/components/results/AudioAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAWjE,iBAAS,WAAW,CAAC,gBAAgB,EAAE,kBAAkB,
|
1
|
+
{"version":3,"file":"AudioAnswer.d.ts","sourceRoot":"","sources":["../../../src/components/results/AudioAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAWjE,iBAAS,WAAW,CAAC,gBAAgB,EAAE,kBAAkB,qBAoCxD;;AAED,wBAAsC"}
|
@@ -24,8 +24,9 @@ function AudioAnswer(audioAnswerProps) {
|
|
24
24
|
React.createElement(ResultsExamQuestionManualScore, { scores: score, maxScore, displayNumber, questionId }),
|
25
25
|
React.createElement("div", { className: classNames('audio-answer', {
|
26
26
|
'no-answer': !value
|
27
|
-
}), "aria-description": !value ? i18n.t('examineExam.questionHasNoAnswer') : undefined },
|
28
|
-
|
27
|
+
}), "aria-description": !value ? i18n.t('examineExam.questionHasNoAnswer') : undefined }, value ? (React.createElement(AudioPlayer, { src: value, variant: "recorded" })) : (React.createElement("span", { className: "e-normal" },
|
28
|
+
" ",
|
29
|
+
i18n.t('examineExam.questionHasNoAnswer')))),
|
29
30
|
comment && (React.createElement(React.Fragment, null,
|
30
31
|
React.createElement("h5", null, t('comment')),
|
31
32
|
React.createElement("p", { className: "e-italic" }, comment)))));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AudioAnswer.js","sourceRoot":"","sources":["../../../src/components/results/AudioAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,8BAA8B,MAAM,gCAAgC,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,WAAW,MAAM,gCAAgC,CAAA;AAExD,SAAS,WAAW,CAAC,gBAAoC;;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;IACpC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAE,CAAA;IAC/D,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAA2B,CAAA;IACxE,MAAM,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,CAAA;IACpC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAE,CAAA;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClH,MAAM,OAAO,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,OAAO,CAAA;IAE1C,OAAO,CACL;QACE,oBAAC,8BAA8B,IAAO,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,GAAM;QAC9F,6BACE,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE;gBACpC,WAAW,EAAE,CAAC,KAAK;aACpB,CAAC,sBACgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,SAAS
|
1
|
+
{"version":3,"file":"AudioAnswer.js","sourceRoot":"","sources":["../../../src/components/results/AudioAnswer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAErE,OAAO,8BAA8B,MAAM,gCAAgC,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,WAAW,MAAM,gCAAgC,CAAA;AAExD,SAAS,WAAW,CAAC,gBAAoC;;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAA;IACpC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACxC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAE,CAAA;IAC/D,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAA2B,CAAA;IACxE,MAAM,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,CAAA;IACpC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAE,CAAA;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClH,MAAM,OAAO,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,OAAO,CAAA;IAE1C,OAAO,CACL;QACE,oBAAC,8BAA8B,IAAO,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,GAAM;QAC9F,6BACE,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE;gBACpC,WAAW,EAAE,CAAC,KAAK;aACpB,CAAC,sBACgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,SAAS,IAE/E,KAAK,CAAC,CAAC,CAAC,CACP,oBAAC,WAAW,IAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAC,UAAU,GAAG,CAC/C,CAAC,CAAC,CAAC,CACF,8BAAM,SAAS,EAAC,UAAU;;YAAG,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAQ,CAC/E,CACG;QACL,OAAO,IAAI,CACV;YACE,gCAAK,CAAC,CAAC,SAAS,CAAC,CAAM;YACvB,2BAAG,SAAS,EAAC,UAAU,IAAE,OAAO,CAAK,CACpC,CACJ,CACA,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AudioPlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/internal/AudioPlayer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAIvE,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
1
|
+
{"version":3,"file":"AudioPlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/internal/AudioPlayer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAIvE,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyH3C,CAAA;AAED,eAAe,WAAW,CAAA"}
|
@@ -43,6 +43,7 @@ const AudioPlayer = ({ src, variant = 'repeatable', labelId }) => {
|
|
43
43
|
audio.addEventListener('pause', setPlayingFalse);
|
44
44
|
audio.addEventListener('ended', setPlayingFalse);
|
45
45
|
return () => {
|
46
|
+
setIsPlaying(false);
|
46
47
|
audio.removeEventListener('loadeddata', onDurationChange);
|
47
48
|
audio.removeEventListener('loadedmetadata', onDurationChange);
|
48
49
|
audio.removeEventListener('durationchange', onDurationChange);
|
@@ -70,6 +71,8 @@ const AudioPlayer = ({ src, variant = 'repeatable', labelId }) => {
|
|
70
71
|
if (seekTime !== undefined)
|
71
72
|
audioRef.current.currentTime = seekTime;
|
72
73
|
const newTime = audioRef.current.currentTime;
|
74
|
+
if (!Number.isFinite(newTime))
|
75
|
+
return;
|
73
76
|
// for some reason duration is 0 here, so we use the audioRef
|
74
77
|
// Ensure duration is not NaN or 0 before division to prevent issues
|
75
78
|
const dur = !Number.isFinite(audioRef.current.duration) ? 0 : audioRef.current.duration;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AudioPlayer.js","sourceRoot":"","sources":["../../../../src/components/shared/internal/AudioPlayer.tsx"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"AudioPlayer.js","sourceRoot":"","sources":["../../../../src/components/shared/internal/AudioPlayer.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -11,6 +11,7 @@ export * from './types/ExamAnswer';
|
|
11
11
|
export * from './types/ExamServerAPI';
|
12
12
|
export * from './types/GradingStructure';
|
13
13
|
export * from './types/Score';
|
14
|
+
export { indexedDBExamServerAPI } from './indexedDBExamServerAPI';
|
14
15
|
export interface ExamBundle {
|
15
16
|
Attachments: typeof Attachments;
|
16
17
|
Exam: typeof Exam;
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,WAAW,MAAM,sCAAsC,CAAA;AAC9D,OAAO,IAAI,MAAM,wBAAwB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uDAAuD,CAAA;AACvF,OAAO,OAAO,MAAM,8BAA8B,CAAA;AAClD,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,WAAW,MAAM,sCAAsC,CAAA;AAC9D,OAAO,IAAI,MAAM,wBAAwB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uDAAuD,CAAA;AACvF,OAAO,OAAO,MAAM,8BAA8B,CAAA;AAClD,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,OAAO,WAAW,CAAA;IAC/B,IAAI,EAAE,OAAO,IAAI,CAAA;IACjB,SAAS,EAAE,OAAO,SAAS,CAAA;IAC3B,OAAO,EAAE,OAAO,OAAO,CAAA;CACxB"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,WAAW,MAAM,sCAAsC,CAAA;AAC9D,OAAO,IAAI,MAAM,wBAAwB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uDAAuD,CAAA;AACvF,OAAO,OAAO,MAAM,8BAA8B,CAAA;AAClD,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,WAAW,MAAM,sCAAsC,CAAA;AAC9D,OAAO,IAAI,MAAM,wBAAwB,CAAA;AACzC,OAAO,mBAAmB,MAAM,uDAAuD,CAAA;AACvF,OAAO,OAAO,MAAM,8BAA8B,CAAA;AAClD,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { ExamServerAPI } from '.';
|
2
|
+
/** Creates a mock Exam Server API, backed by a local IndexedDB database. */
|
3
|
+
export declare function indexedDBExamServerAPI(examUuid: string, resolveAttachment: (s: string) => string): ExamServerAPI;
|
4
|
+
//# sourceMappingURL=indexedDBExamServerAPI.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"indexedDBExamServerAPI.d.ts","sourceRoot":"","sources":["../src/indexedDBExamServerAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,aAAa,EAAE,MAAM,GAAG,CAAA;AAG7C,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,aAAa,CAqGhH"}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import Dexie from 'dexie';
|
2
|
+
/** Creates a mock Exam Server API, backed by a local IndexedDB database. */
|
3
|
+
export function indexedDBExamServerAPI(examUuid, resolveAttachment) {
|
4
|
+
const db = new (class extends Dexie {
|
5
|
+
constructor() {
|
6
|
+
super('exam');
|
7
|
+
this.version(1).stores({
|
8
|
+
answer: '[examUuid+questionId], examUuid',
|
9
|
+
audio: 'audioId'
|
10
|
+
});
|
11
|
+
}
|
12
|
+
})();
|
13
|
+
// Emulate real exam restricted audio playback by playing the audio files in a
|
14
|
+
// HTML5 <audio> tag. The tag is made visible when starting playback and hidden
|
15
|
+
// when playback finishes.
|
16
|
+
const audioPlayer = new Audio();
|
17
|
+
audioPlayer.classList.add('audio-player');
|
18
|
+
audioPlayer.controls = true;
|
19
|
+
audioPlayer.onended = () => {
|
20
|
+
audioPlayer.classList.add('audio-player--animating');
|
21
|
+
audioPlayer.classList.remove('audio-player--visible');
|
22
|
+
};
|
23
|
+
const animationFinished = () => audioPlayer.classList.remove('audio-player--animating');
|
24
|
+
audioPlayer.addEventListener('transitionend', animationFinished);
|
25
|
+
audioPlayer.addEventListener('transitioncancel', animationFinished);
|
26
|
+
document.body.appendChild(audioPlayer);
|
27
|
+
const examServerApi = {
|
28
|
+
setCasStatus: casStatus => Promise.resolve(casStatus),
|
29
|
+
getAnswers: () => db.answer.where({ examUuid }).toArray(),
|
30
|
+
saveAnswer: async (answer) => {
|
31
|
+
await db.answer.put({ ...answer, examUuid });
|
32
|
+
},
|
33
|
+
async saveAudio(questionId, audio) {
|
34
|
+
const audioId = `${examUuid}-${questionId}`;
|
35
|
+
const previouslySavedAudio = await db.audio.get(audioId);
|
36
|
+
const combinedAudio = previouslySavedAudio
|
37
|
+
? new Blob([previouslySavedAudio.blob, audio], { type: audio.type })
|
38
|
+
: audio;
|
39
|
+
return new Promise((resolve, reject) => {
|
40
|
+
const reader = new FileReader();
|
41
|
+
reader.onload = async () => {
|
42
|
+
const dataUrl = String(reader.result);
|
43
|
+
await db.audio.put({ blob: combinedAudio, dataUrl, audioId });
|
44
|
+
resolve(dataUrl);
|
45
|
+
};
|
46
|
+
reader.onerror = () => {
|
47
|
+
reader.abort();
|
48
|
+
reject(reader.error);
|
49
|
+
};
|
50
|
+
reader.readAsDataURL(combinedAudio);
|
51
|
+
});
|
52
|
+
},
|
53
|
+
async deleteAudio(dataUrl) {
|
54
|
+
const audio = await db.audio
|
55
|
+
.filter(audio => audio.dataUrl.includes(dataUrl) // operator == does not find audio, because of value.split('/') in AudioAnswer.tsx
|
56
|
+
)
|
57
|
+
.first();
|
58
|
+
if (audio) {
|
59
|
+
await db.audio.delete(audio.audioId);
|
60
|
+
}
|
61
|
+
return Promise.resolve();
|
62
|
+
},
|
63
|
+
async playAudio(src) {
|
64
|
+
audioPlayer.src = resolveAttachment(src);
|
65
|
+
try {
|
66
|
+
await audioPlayer.play();
|
67
|
+
audioPlayer.classList.add('audio-player--visible', 'audio-player--animating');
|
68
|
+
return 'ok';
|
69
|
+
}
|
70
|
+
catch (err) {
|
71
|
+
console.error(err);
|
72
|
+
return 'other-error';
|
73
|
+
}
|
74
|
+
},
|
75
|
+
async playRestrictedAudio(src) {
|
76
|
+
return examServerApi.playAudio(src);
|
77
|
+
},
|
78
|
+
getRestrictedAudio() {
|
79
|
+
throw new Error('other-error');
|
80
|
+
},
|
81
|
+
saveScreenshot(_, file) {
|
82
|
+
return new Promise((resolve, reject) => {
|
83
|
+
const reader = new FileReader();
|
84
|
+
reader.onload = () => {
|
85
|
+
resolve(String(reader.result));
|
86
|
+
};
|
87
|
+
reader.onerror = () => {
|
88
|
+
reader.abort();
|
89
|
+
reject(reader.error);
|
90
|
+
};
|
91
|
+
reader.readAsDataURL(file);
|
92
|
+
});
|
93
|
+
}
|
94
|
+
};
|
95
|
+
return examServerApi;
|
96
|
+
}
|
97
|
+
//# sourceMappingURL=indexedDBExamServerAPI.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"indexedDBExamServerAPI.js","sourceRoot":"","sources":["../src/indexedDBExamServerAPI.ts"],"names":[],"mappings":"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"}
|