@digabi/exam-engine-rendering 19.10.1-alpha.0 → 19.10.1

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.
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ declare const _default: React.MemoExoticComponent<React.ComponentType<any>>;
3
+ export default _default;
4
+ //# sourceMappingURL=Grading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grading.d.ts","sourceRoot":"","sources":["../src/Grading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAA;;AAqHtE,wBAA6E"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const react_1 = __importStar(require("react"));
27
+ const react_i18next_1 = require("react-i18next");
28
+ const ResultsContext_1 = require("@digabi/exam-engine-core/dist/components/context/ResultsContext");
29
+ const i18n_1 = require("@digabi/exam-engine-core/dist/i18n");
30
+ const GradingAnswer_1 = require("@digabi/exam-engine-core/dist/components/grading/GradingAnswer");
31
+ const CommonExamContext_1 = require("@digabi/exam-engine-core/dist/components/context/CommonExamContext");
32
+ function Grading() {
33
+ const { answersByQuestionId } = (0, react_1.useContext)(ResultsContext_1.ResultsContext);
34
+ const i18n = (0, i18n_1.initI18n)('FI-fi');
35
+ (0, react_1.useEffect)((0, i18n_1.changeLanguage)(i18n, 'FI-fi'));
36
+ const answerIds = Object.keys(answersByQuestionId).map(Number);
37
+ if (answerIds.length === 0) {
38
+ return react_1.default.createElement("div", null, "No answers");
39
+ }
40
+ const [answerId, setAnswerId] = (0, react_1.useState)(answerIds[0]);
41
+ const annotationsStorage = (0, react_1.useRef)(Object.fromEntries(answerIds.map((id) => [
42
+ id,
43
+ {
44
+ pregrading: [
45
+ {
46
+ startIndex: 2,
47
+ length: 5,
48
+ message: '+1',
49
+ },
50
+ {
51
+ x: 0.07434944237918215,
52
+ y: 0.8599562363238512,
53
+ type: 'rect',
54
+ width: 0.16604708798017348,
55
+ height: 0.03063457330415753,
56
+ message: '+2',
57
+ attachmentIndex: 0,
58
+ },
59
+ {
60
+ x1: 0.4035532994923858,
61
+ x2: 0.5621827411167513,
62
+ y1: 0.957983193277311,
63
+ y2: 0.957983193277311,
64
+ type: 'line',
65
+ message: 'trk, +1',
66
+ attachmentIndex: 0,
67
+ },
68
+ ],
69
+ censoring: [],
70
+ },
71
+ ])));
72
+ const [annotations, setAnnotations] = (0, react_1.useState)({
73
+ pregrading: [],
74
+ censoring: [],
75
+ });
76
+ (0, react_1.useEffect)(() => {
77
+ setAnnotations(annotationsStorage.current[answerId]);
78
+ });
79
+ const answer = answersByQuestionId[answerId];
80
+ const { type: answerType, value } = answer;
81
+ if (answerType === 'choice') {
82
+ return react_1.default.createElement("div", null, "choice answer");
83
+ }
84
+ const { characterCount } = answer;
85
+ function selectQuestion(e, id) {
86
+ e.preventDefault();
87
+ setAnswerId(id);
88
+ setAnnotations(annotationsStorage.current[id]);
89
+ }
90
+ function saveAnnotations(annotations) {
91
+ annotationsStorage.current[answerId] = annotations;
92
+ setAnnotations({ ...annotationsStorage.current[answerId] });
93
+ }
94
+ return (react_1.default.createElement(react_i18next_1.I18nextProvider, { i18n: i18n },
95
+ react_1.default.createElement("main", { className: "e-exam" },
96
+ react_1.default.createElement("div", { className: "grading-navi" }, answerIds.map((id) => id === answerId ? (react_1.default.createElement("span", { key: id, className: "grading-navi-item" }, answersByQuestionId[id].displayNumber)) : (react_1.default.createElement("a", { className: "grading-navi-item", href: "", onClick: (e) => selectQuestion(e, id), key: id }, answersByQuestionId[id].displayNumber)))),
97
+ react_1.default.createElement(GradingAnswer_1.GradingAnswer, { ...{
98
+ isReadOnly: false,
99
+ answerType,
100
+ gradingRole: 'censoring',
101
+ value,
102
+ characterCount,
103
+ maxLength: 100,
104
+ annotations,
105
+ saveAnnotations,
106
+ } }))));
107
+ }
108
+ exports.default = react_1.default.memo((0, ResultsContext_1.withResultsContext)((0, CommonExamContext_1.withCommonExamContext)(Grading)));
109
+ //# sourceMappingURL=Grading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grading.js","sourceRoot":"","sources":["../src/Grading.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsE;AACtE,iDAA+C;AAC/C,oGAAoH;AACpH,6DAA6E;AAE7E,kGAA8F;AAC9F,0GAA0G;AAE1G,SAAS,OAAO;IACd,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAA,kBAAU,EAAC,+BAAc,CAAC,CAAA;IAE1D,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,OAAO,CAAC,CAAA;IAC9B,IAAA,iBAAS,EAAC,IAAA,qBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAExC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,wDAAqB,CAAA;KAC7B;IACD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9D,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAC/B,MAAM,CAAC,WAAW,CAChB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,EAAE;QACF;YACE,UAAU,EAAE;gBACV;oBACE,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,IAAI;iBACd;gBACD;oBACE,CAAC,EAAE,mBAAmB;oBACtB,CAAC,EAAE,kBAAkB;oBACrB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;oBAC1B,MAAM,EAAE,mBAAmB;oBAC3B,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,CAAC;iBACnB;gBACD;oBACE,EAAE,EAAE,kBAAkB;oBACtB,EAAE,EAAE,kBAAkB;oBACtB,EAAE,EAAE,iBAAiB;oBACrB,EAAE,EAAE,iBAAiB;oBACrB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,SAAS;oBAClB,eAAe,EAAE,CAAC;iBACnB;aACF;YACD,SAAS,EAAE,EAAE;SACd;KACF,CAAC,CACH,CACF,CAAA;IAED,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAwD;QACpG,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;KACd,CAAC,CAAA;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAE1C,IAAI,UAAU,KAAK,QAAQ,EAAE;QAC3B,OAAO,2DAAwB,CAAA;KAChC;IACD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IACjC,SAAS,cAAc,CAAC,CAAkD,EAAE,EAAU;QACpF,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,WAAW,CAAC,EAAE,CAAC,CAAA;QACf,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,SAAS,eAAe,CAAC,WAAkE;QACzF,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAA;QAClD,cAAc,CAAC,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,CACL,8BAAC,+BAAe,IAAC,IAAI,EAAE,IAAI;QACzB,wCAAM,SAAS,EAAC,QAAQ;YACtB,uCAAK,SAAS,EAAC,cAAc,IAC1B,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpB,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChB,wCAAM,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,mBAAmB,IACzC,mBAAmB,CAAC,EAAE,CAAC,CAAC,aAAa,CACjC,CACR,CAAC,CAAC,CAAC,CACF,qCAAG,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAC,EAAE,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,IACpF,mBAAmB,CAAC,EAAE,CAAC,CAAC,aAAa,CACpC,CACL,CACF,CACG;YAEN,8BAAC,6BAAa,OACR;oBACF,UAAU,EAAE,KAAK;oBACjB,UAAU;oBACV,WAAW,EAAE,WAAW;oBACxB,KAAK;oBACL,cAAc;oBACd,SAAS,EAAE,GAAG;oBACd,WAAW;oBACX,eAAe;iBAChB,GACD,CACG,CACS,CACnB,CAAA;AACH,CAAC;AAED,kBAAe,eAAK,CAAC,IAAI,CAAC,IAAA,mCAAkB,EAAC,IAAA,yCAAqB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function createFileWithCleanExif(sourceFilePath: string): Promise<string>;
2
+ //# sourceMappingURL=exifDataAndImageHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exifDataAndImageHandler.d.ts","sourceRoot":"","sources":["../../src/utils/exifDataAndImageHandler.ts"],"names":[],"mappings":"AAIA,wBAAsB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAerF"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.createFileWithCleanExif = void 0;
30
+ const path_1 = __importDefault(require("path"));
31
+ const promises_1 = require("fs/promises");
32
+ const exif = __importStar(require("piexif-ts"));
33
+ async function createFileWithCleanExif(sourceFilePath) {
34
+ const imageData = async function (src) {
35
+ const data = await (0, promises_1.readFile)(src);
36
+ return data.toString('binary');
37
+ };
38
+ if (path_1.default.extname(sourceFilePath) === '.jpg') {
39
+ const newFileSource = sourceFilePath;
40
+ const data = exif.load(await imageData(sourceFilePath));
41
+ const cleanExifData = createCleanExif(data);
42
+ const newImageBinary = exif.insert(exif.dump(cleanExifData), exif.remove(await imageData(sourceFilePath)));
43
+ await (0, promises_1.rm)(sourceFilePath, { force: true });
44
+ await (0, promises_1.writeFile)(newFileSource, newImageBinary, { encoding: 'binary' });
45
+ }
46
+ return sourceFilePath;
47
+ }
48
+ exports.createFileWithCleanExif = createFileWithCleanExif;
49
+ function createCleanExif(exifSource) {
50
+ return {
51
+ ...exifSource,
52
+ ...((exifSource === null || exifSource === void 0 ? void 0 : exifSource['0th']) && { '0th': appendImageIFData(exifSource['0th']) }),
53
+ ...((exifSource === null || exifSource === void 0 ? void 0 : exifSource.Exif) && { Exif: appendExifIFData(exifSource.Exif) }),
54
+ ...((exifSource === null || exifSource === void 0 ? void 0 : exifSource.GPS) && { GPS: appendGPSIFData() })
55
+ };
56
+ }
57
+ function appendGPSIFData() {
58
+ return {};
59
+ }
60
+ function appendExifIFData(source) {
61
+ const exifIFD = exif.TagValues.ExifIFD;
62
+ return Object.assign(source, {
63
+ [exifIFD.MakerNote]: '',
64
+ [exifIFD.UserComment]: '',
65
+ [exifIFD.LensMake]: '',
66
+ [exifIFD.LensModel]: '',
67
+ [exifIFD.LensSerialNumber]: '',
68
+ [exifIFD.LensSpecification]: [[0]],
69
+ [exifIFD.CameraOwnerName]: '',
70
+ [exifIFD.BodySerialNumber]: '',
71
+ [exifIFD.DateTimeOriginal]: '',
72
+ [exifIFD.DateTimeDigitized]: ''
73
+ });
74
+ }
75
+ function appendImageIFData(source) {
76
+ const imageIFD = exif.TagValues.ImageIFD;
77
+ return Object.assign(source, {
78
+ [imageIFD.DocumentName]: '',
79
+ [imageIFD.ImageDescription]: '',
80
+ [imageIFD.Make]: '',
81
+ [imageIFD.Model]: '',
82
+ [imageIFD.Model]: '',
83
+ [imageIFD.Software]: '',
84
+ [imageIFD.DateTime]: '',
85
+ [imageIFD.Artist]: '',
86
+ [imageIFD.HostComputer]: '',
87
+ [imageIFD.Copyright]: '',
88
+ [imageIFD.ExposureTime]: [[0]],
89
+ [imageIFD.TimeZoneOffset]: [0],
90
+ [imageIFD.XPKeywords]: [0],
91
+ [imageIFD.XPTitle]: [0],
92
+ [imageIFD.XPComment]: [0],
93
+ [imageIFD.XPSubject]: [0],
94
+ [imageIFD.LocalizedCameraModel]: [0],
95
+ [imageIFD.CameraSerialNumber]: '',
96
+ [imageIFD.MakerNoteSafety]: [0],
97
+ [imageIFD.OriginalRawFileName]: [0],
98
+ [imageIFD.OriginalRawFileData]: ''
99
+ });
100
+ }
101
+ //# sourceMappingURL=exifDataAndImageHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exifDataAndImageHandler.js","sourceRoot":"","sources":["../../src/utils/exifDataAndImageHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuB;AACvB,0CAAqD;AACrD,gDAAiC;AAE1B,KAAK,UAAU,uBAAuB,CAAC,cAAsB;IAClE,MAAM,SAAS,GAAG,KAAK,WAAW,GAAW;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,CAAC,CAAA;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,IAAI,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,MAAM,EAAE;QAC3C,MAAM,aAAa,GAAW,cAAc,CAAA;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA;QACvD,MAAM,aAAa,GAAe,eAAe,CAAC,IAAI,CAAC,CAAA;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;QAC1G,MAAM,IAAA,aAAE,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACzC,MAAM,IAAA,oBAAS,EAAC,aAAa,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;KACvE;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AAfD,0DAeC;AAED,SAAS,eAAe,CAAC,UAAsB;IAC7C,OAAO;QACL,GAAG,UAAU;QACb,GAAG,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,KAAK,CAAC,KAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,KAAI,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,CAAC;KACnD,CAAA;AACH,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAA;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE;QACvB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE;QACzB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE;QACtB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE;QACvB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE;QAC9B,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE;QAC7B,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE;QAC9B,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE;QAC9B,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE;KAChC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAA;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE;QAC3B,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE;QAC/B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;QACnB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE;QACpB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE;QACpB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE;QACvB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE;QACvB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE;QAC3B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE;QACxB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,EAAE;QACjC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE;KACnC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { GradingAPI } from '@digabi/exam-engine-core/dist/components/grading/Grading';
2
+ export default function indexedDBGradingAPI(examUuid: string): GradingAPI;
3
+ //# sourceMappingURL=indexedDBGraringServerAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedDBGraringServerAPI.d.ts","sourceRoot":"","sources":["../../src/utils/indexedDBGraringServerAPI.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0DAA0D,CAAA;AAErF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CA0BxE"}
@@ -0,0 +1,33 @@
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 dexie_1 = __importDefault(require("dexie"));
7
+ function indexedDBGradingAPI(examUuid) {
8
+ const db = new (class extends dexie_1.default {
9
+ constructor() {
10
+ super('exam');
11
+ this.version(2).stores({
12
+ score: '[examUuid+questionId], examUuid',
13
+ });
14
+ }
15
+ })();
16
+ return {
17
+ init: (answers, examUuid) => {
18
+ const scores = answers.map(({ questionId }) => ({ questionId, answerId: 0 }));
19
+ scores.forEach((score) => void db.score.put({ ...score, examUuid }));
20
+ },
21
+ getScores: () => {
22
+ console.log('hakee');
23
+ return db.score.where({ examUuid }).toArray();
24
+ },
25
+ getScore: (questionId) => db.score.where({ examUuid, questionId }).toArray(),
26
+ saveAnnotations: (score) => {
27
+ console.log('tallentaa', score);
28
+ void db.score.put({ ...score, examUuid });
29
+ },
30
+ };
31
+ }
32
+ exports.default = indexedDBGradingAPI;
33
+ //# sourceMappingURL=indexedDBGraringServerAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedDBGraringServerAPI.js","sourceRoot":"","sources":["../../src/utils/indexedDBGraringServerAPI.ts"],"names":[],"mappings":";;;;;AACA,kDAAyB;AAGzB,SAAwB,mBAAmB,CAAC,QAAgB;IAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAM,SAAQ,eAAK;QAEjC;YACE,KAAK,CAAC,MAAM,CAAC,CAAA;YACb,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,KAAK,EAAE,iCAAiC;aACzC,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,EAAE,CAAA;IAEJ,OAAO;QACL,IAAI,EAAE,CAAC,OAAqB,EAAE,QAAgB,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACtE,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACpB,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;QAC/C,CAAC;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;QAC5E,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YAC/B,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC3C,CAAC;KACF,CAAA;AACH,CAAC;AA1BD,sCA0BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digabi/exam-engine-rendering",
3
- "version": "19.10.1-alpha.0",
3
+ "version": "19.10.1",
4
4
  "main": "./dist/index.js",
5
5
  "license": "EUPL-1.1",
6
6
  "files": [
@@ -13,8 +13,8 @@
13
13
  "@babel/polyfill": "^7.8.7",
14
14
  "@babel/preset-env": "^7.8.7",
15
15
  "@babel/runtime": "^7.8.7",
16
- "@digabi/exam-engine-core": "19.10.1-alpha.0",
17
- "@digabi/exam-engine-mastering": "19.10.1-alpha.0",
16
+ "@digabi/exam-engine-core": "19.10.1",
17
+ "@digabi/exam-engine-mastering": "19.10.1",
18
18
  "@fortawesome/fontawesome-svg-core": "^6.4.0",
19
19
  "babel-loader": "^9.1.2",
20
20
  "child-process-promise": "^2.2.1",
@@ -44,5 +44,5 @@
44
44
  "webpack-dev-server": "^4.15.1",
45
45
  "webpack-merge": "^5.0.9"
46
46
  },
47
- "gitHead": "a726ad628b2fd5ee43486871572711d2a21530f1"
47
+ "gitHead": "a8a8f6a5c63a550bdce41f7368ec0c64674a654f"
48
48
  }