@pie-element/hotspot 9.0.2-esm.0 → 9.2.0-mui-update.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.
- package/CHANGELOG.md +74 -0
- package/configure/CHANGELOG.md +74 -0
- package/configure/lib/DeleteWidget.js +31 -44
- package/configure/lib/DeleteWidget.js.map +1 -1
- package/configure/lib/__tests__/DeleteWidget.test.js +60 -0
- package/configure/lib/__tests__/hotspot-container.test.js +377 -0
- package/configure/lib/__tests__/hotspot-drawable.test.js +233 -0
- package/configure/lib/__tests__/index.test.js +211 -0
- package/configure/lib/__tests__/root.test.js +440 -0
- package/configure/lib/__tests__/utils.test.js +287 -0
- package/configure/lib/button.js +27 -46
- package/configure/lib/button.js.map +1 -1
- package/configure/lib/buttons/circle.js +21 -28
- package/configure/lib/buttons/circle.js.map +1 -1
- package/configure/lib/buttons/polygon.js +27 -34
- package/configure/lib/buttons/polygon.js.map +1 -1
- package/configure/lib/buttons/rectangle.js +27 -34
- package/configure/lib/buttons/rectangle.js.map +1 -1
- package/configure/lib/defaults.js +3 -4
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/hotspot-circle.js +133 -199
- package/configure/lib/hotspot-circle.js.map +1 -1
- package/configure/lib/hotspot-container.js +251 -356
- package/configure/lib/hotspot-container.js.map +1 -1
- package/configure/lib/hotspot-drawable.js +361 -473
- package/configure/lib/hotspot-drawable.js.map +1 -1
- package/configure/lib/hotspot-palette.js +93 -140
- package/configure/lib/hotspot-palette.js.map +1 -1
- package/configure/lib/hotspot-polygon.js +213 -318
- package/configure/lib/hotspot-polygon.js.map +1 -1
- package/configure/lib/hotspot-rectangle.js +129 -193
- package/configure/lib/hotspot-rectangle.js.map +1 -1
- package/configure/lib/icons.js +4 -8
- package/configure/lib/icons.js.map +1 -1
- package/configure/lib/image-konva.js +47 -87
- package/configure/lib/image-konva.js.map +1 -1
- package/configure/lib/index.js +163 -223
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/root.js +302 -394
- package/configure/lib/root.js.map +1 -1
- package/configure/lib/shapes/circle.js +70 -102
- package/configure/lib/shapes/circle.js.map +1 -1
- package/configure/lib/shapes/index.js +5 -13
- package/configure/lib/shapes/index.js.map +1 -1
- package/configure/lib/shapes/polygon.js +65 -97
- package/configure/lib/shapes/polygon.js.map +1 -1
- package/configure/lib/shapes/rectagle.js +70 -102
- package/configure/lib/shapes/rectagle.js.map +1 -1
- package/configure/lib/shapes/utils.js +3 -9
- package/configure/lib/shapes/utils.js.map +1 -1
- package/configure/lib/upload-control.js +26 -53
- package/configure/lib/upload-control.js.map +1 -1
- package/configure/lib/utils.js +85 -138
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +11 -10
- package/configure/src/__tests__/index.test.js +11 -5
- package/configure/src/button.jsx +12 -20
- package/configure/src/hotspot-circle.jsx +5 -18
- package/configure/src/hotspot-container.jsx +82 -98
- package/configure/src/hotspot-drawable.jsx +43 -45
- package/configure/src/hotspot-palette.jsx +45 -37
- package/configure/src/hotspot-polygon.jsx +4 -20
- package/configure/src/hotspot-rectangle.jsx +4 -17
- package/configure/src/icons.js +4 -2
- package/configure/src/index.js +12 -2
- package/configure/src/root.jsx +85 -79
- package/configure/src/upload-control.jsx +6 -16
- package/controller/CHANGELOG.md +60 -0
- package/controller/lib/__tests__/index.test.js +586 -0
- package/controller/lib/__tests__/utils.test.js +8 -0
- package/controller/lib/defaults.js +3 -4
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +152 -206
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +15 -35
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/demo/pie.manifest.json +11 -0
- package/lib/__tests__/container.test.js +221 -0
- package/lib/__tests__/index.test.js +113 -0
- package/lib/__tests__/polygon.test.js +245 -0
- package/lib/__tests__/rectangle.test.js +236 -0
- package/lib/__tests__/session-updater.test.js +69 -0
- package/lib/hotspot/circle.js +111 -170
- package/lib/hotspot/circle.js.map +1 -1
- package/lib/hotspot/container.js +175 -261
- package/lib/hotspot/container.js.map +1 -1
- package/lib/hotspot/icons.js +5 -10
- package/lib/hotspot/icons.js.map +1 -1
- package/lib/hotspot/image-konva-tooltip.js +66 -113
- package/lib/hotspot/image-konva-tooltip.js.map +1 -1
- package/lib/hotspot/index.js +136 -199
- package/lib/hotspot/index.js.map +1 -1
- package/lib/hotspot/polygon.js +151 -215
- package/lib/hotspot/polygon.js.map +1 -1
- package/lib/hotspot/rectangle.js +130 -186
- package/lib/hotspot/rectangle.js.map +1 -1
- package/lib/index.js +188 -257
- package/lib/index.js.map +1 -1
- package/lib/session-updater.js +13 -19
- package/lib/session-updater.js.map +1 -1
- package/package.json +15 -29
- package/src/hotspot/circle.jsx +2 -13
- package/src/hotspot/container.jsx +35 -50
- package/src/hotspot/icons.js +6 -5
- package/src/hotspot/index.jsx +16 -28
- package/src/hotspot/polygon.jsx +4 -13
- package/src/hotspot/rectangle.jsx +4 -13
- package/src/index.js +21 -12
- package/LICENSE.md +0 -5
- package/configure/node_modules/debug/CHANGELOG.md +0 -395
- package/configure/node_modules/debug/LICENSE +0 -19
- package/configure/node_modules/debug/README.md +0 -437
- package/configure/node_modules/debug/node.js +0 -1
- package/configure/node_modules/debug/package.json +0 -51
- package/configure/node_modules/debug/src/browser.js +0 -180
- package/configure/node_modules/debug/src/common.js +0 -249
- package/configure/node_modules/debug/src/index.js +0 -12
- package/configure/node_modules/debug/src/node.js +0 -177
- package/esm/configure.js +0 -25986
- package/esm/configure.js.map +0 -1
- package/esm/controller.js +0 -344
- package/esm/controller.js.map +0 -1
- package/esm/element.js +0 -1312
- package/esm/element.js.map +0 -1
package/lib/session-updater.js
CHANGED
|
@@ -5,39 +5,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.updateSessionMetadata = updateSessionMetadata;
|
|
7
7
|
exports.updateSessionValue = updateSessionValue;
|
|
8
|
-
|
|
9
8
|
function updateSessionValue(session, model, data) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
const {
|
|
10
|
+
id,
|
|
11
|
+
selected
|
|
12
|
+
} = data;
|
|
13
|
+
const {
|
|
14
|
+
multipleCorrect
|
|
15
|
+
} = model || {};
|
|
16
16
|
session.answers = session.answers || [];
|
|
17
|
-
|
|
18
17
|
if (!selected) {
|
|
19
|
-
session.answers = session.answers.filter(
|
|
20
|
-
return answer.id !== id;
|
|
21
|
-
});
|
|
18
|
+
session.answers = session.answers.filter(answer => answer.id !== id);
|
|
22
19
|
} else {
|
|
23
|
-
|
|
24
|
-
id
|
|
20
|
+
const item = {
|
|
21
|
+
id
|
|
25
22
|
};
|
|
26
|
-
|
|
27
23
|
if (multipleCorrect) {
|
|
28
24
|
session.answers.push(item);
|
|
29
25
|
} else {
|
|
30
26
|
session.answers = [item];
|
|
31
|
-
}
|
|
32
|
-
|
|
27
|
+
}
|
|
33
28
|
|
|
29
|
+
//update session metadata
|
|
34
30
|
session.selector = data.selector;
|
|
35
31
|
}
|
|
36
32
|
}
|
|
37
|
-
|
|
38
33
|
function updateSessionMetadata(session, metadata) {
|
|
39
34
|
session.audioStartTime = session.audioStartTime || metadata.audioStartTime; //timestamp when auto-played audio started playing
|
|
40
|
-
|
|
41
35
|
session.audioEndTime = session.audioEndTime || metadata.audioEndTime; //timestamp when auto-played audio completed playing
|
|
42
36
|
|
|
43
37
|
if (!session.waitTime && session.audioStartTime && session.audioEndTime) {
|
|
@@ -45,4 +39,4 @@ function updateSessionMetadata(session, metadata) {
|
|
|
45
39
|
session.waitTime = session.audioEndTime - session.audioStartTime;
|
|
46
40
|
}
|
|
47
41
|
}
|
|
48
|
-
//# sourceMappingURL=
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1cGRhdGVTZXNzaW9uVmFsdWUiLCJzZXNzaW9uIiwibW9kZWwiLCJkYXRhIiwiaWQiLCJzZWxlY3RlZCIsIm11bHRpcGxlQ29ycmVjdCIsImFuc3dlcnMiLCJmaWx0ZXIiLCJhbnN3ZXIiLCJpdGVtIiwicHVzaCIsInNlbGVjdG9yIiwidXBkYXRlU2Vzc2lvbk1ldGFkYXRhIiwibWV0YWRhdGEiLCJhdWRpb1N0YXJ0VGltZSIsImF1ZGlvRW5kVGltZSIsIndhaXRUaW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Nlc3Npb24tdXBkYXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdXBkYXRlU2Vzc2lvblZhbHVlKHNlc3Npb24sIG1vZGVsLCBkYXRhKSB7XG4gIGNvbnN0IHsgaWQsIHNlbGVjdGVkIH0gPSBkYXRhO1xuICBjb25zdCB7IG11bHRpcGxlQ29ycmVjdCB9ID0gbW9kZWwgfHwge307XG4gIHNlc3Npb24uYW5zd2VycyA9IHNlc3Npb24uYW5zd2VycyB8fCBbXTtcblxuICBpZiAoIXNlbGVjdGVkKSB7XG4gICAgc2Vzc2lvbi5hbnN3ZXJzID0gc2Vzc2lvbi5hbnN3ZXJzLmZpbHRlcigoYW5zd2VyKSA9PiBhbnN3ZXIuaWQgIT09IGlkKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBpdGVtID0geyBpZCB9O1xuICAgIGlmIChtdWx0aXBsZUNvcnJlY3QpIHtcbiAgICAgIHNlc3Npb24uYW5zd2Vycy5wdXNoKGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXNzaW9uLmFuc3dlcnMgPSBbaXRlbV07XG4gICAgfVxuXG4gICAgLy91cGRhdGUgc2Vzc2lvbiBtZXRhZGF0YVxuICAgIHNlc3Npb24uc2VsZWN0b3IgPSBkYXRhLnNlbGVjdG9yO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVTZXNzaW9uTWV0YWRhdGEoc2Vzc2lvbiwgbWV0YWRhdGEpIHtcbiAgc2Vzc2lvbi5hdWRpb1N0YXJ0VGltZSA9IHNlc3Npb24uYXVkaW9TdGFydFRpbWUgfHwgbWV0YWRhdGEuYXVkaW9TdGFydFRpbWU7IC8vdGltZXN0YW1wIHdoZW4gYXV0by1wbGF5ZWQgYXVkaW8gc3RhcnRlZCBwbGF5aW5nXG4gIHNlc3Npb24uYXVkaW9FbmRUaW1lID0gc2Vzc2lvbi5hdWRpb0VuZFRpbWUgfHwgbWV0YWRhdGEuYXVkaW9FbmRUaW1lOyAvL3RpbWVzdGFtcCB3aGVuIGF1dG8tcGxheWVkIGF1ZGlvIGNvbXBsZXRlZCBwbGF5aW5nXG5cbiAgaWYgKCFzZXNzaW9uLndhaXRUaW1lICYmIHNlc3Npb24uYXVkaW9TdGFydFRpbWUgJiYgc2Vzc2lvbi5hdWRpb0VuZFRpbWUpIHtcbiAgICAvLyB3YWl0VGltZSBpcyBlbGFwc2VkIHRpbWUgdGhlIHVzZXIgd2FpdGVkIGZvciBhdXRvLXBsYXllZCBhdWRpbyB0byBmaW5pc2hcbiAgICBzZXNzaW9uLndhaXRUaW1lID0gc2Vzc2lvbi5hdWRpb0VuZFRpbWUgLSBzZXNzaW9uLmF1ZGlvU3RhcnRUaW1lO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBTyxTQUFTQSxrQkFBa0JBLENBQUNDLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUU7RUFDdkQsTUFBTTtJQUFFQyxFQUFFO0lBQUVDO0VBQVMsQ0FBQyxHQUFHRixJQUFJO0VBQzdCLE1BQU07SUFBRUc7RUFBZ0IsQ0FBQyxHQUFHSixLQUFLLElBQUksQ0FBQyxDQUFDO0VBQ3ZDRCxPQUFPLENBQUNNLE9BQU8sR0FBR04sT0FBTyxDQUFDTSxPQUFPLElBQUksRUFBRTtFQUV2QyxJQUFJLENBQUNGLFFBQVEsRUFBRTtJQUNiSixPQUFPLENBQUNNLE9BQU8sR0FBR04sT0FBTyxDQUFDTSxPQUFPLENBQUNDLE1BQU0sQ0FBRUMsTUFBTSxJQUFLQSxNQUFNLENBQUNMLEVBQUUsS0FBS0EsRUFBRSxDQUFDO0VBQ3hFLENBQUMsTUFBTTtJQUNMLE1BQU1NLElBQUksR0FBRztNQUFFTjtJQUFHLENBQUM7SUFDbkIsSUFBSUUsZUFBZSxFQUFFO01BQ25CTCxPQUFPLENBQUNNLE9BQU8sQ0FBQ0ksSUFBSSxDQUFDRCxJQUFJLENBQUM7SUFDNUIsQ0FBQyxNQUFNO01BQ0xULE9BQU8sQ0FBQ00sT0FBTyxHQUFHLENBQUNHLElBQUksQ0FBQztJQUMxQjs7SUFFQTtJQUNBVCxPQUFPLENBQUNXLFFBQVEsR0FBR1QsSUFBSSxDQUFDUyxRQUFRO0VBQ2xDO0FBQ0Y7QUFFTyxTQUFTQyxxQkFBcUJBLENBQUNaLE9BQU8sRUFBRWEsUUFBUSxFQUFFO0VBQ3ZEYixPQUFPLENBQUNjLGNBQWMsR0FBR2QsT0FBTyxDQUFDYyxjQUFjLElBQUlELFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLENBQUM7RUFDNUVkLE9BQU8sQ0FBQ2UsWUFBWSxHQUFHZixPQUFPLENBQUNlLFlBQVksSUFBSUYsUUFBUSxDQUFDRSxZQUFZLENBQUMsQ0FBQzs7RUFFdEUsSUFBSSxDQUFDZixPQUFPLENBQUNnQixRQUFRLElBQUloQixPQUFPLENBQUNjLGNBQWMsSUFBSWQsT0FBTyxDQUFDZSxZQUFZLEVBQUU7SUFDdkU7SUFDQWYsT0FBTyxDQUFDZ0IsUUFBUSxHQUFHaEIsT0FBTyxDQUFDZSxZQUFZLEdBQUdmLE9BQU8sQ0FBQ2MsY0FBYztFQUNsRTtBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"session-updater.js","names":["updateSessionValue","session","model","data","id","selected","multipleCorrect","answers","filter","answer","item","push","selector","updateSessionMetadata","metadata","audioStartTime","audioEndTime","waitTime"],"sources":["../src/session-updater.js"],"sourcesContent":["export function updateSessionValue(session, model, data) {\n const { id, selected } = data;\n const { multipleCorrect } = model || {};\n session.answers = session.answers || [];\n\n if (!selected) {\n session.answers = session.answers.filter((answer) => answer.id !== id);\n } else {\n const item = { id };\n if (multipleCorrect) {\n session.answers.push(item);\n } else {\n session.answers = [item];\n }\n\n //update session metadata\n session.selector = data.selector;\n }\n}\n\nexport function updateSessionMetadata(session, metadata) {\n session.audioStartTime = session.audioStartTime || metadata.audioStartTime; //timestamp when auto-played audio started playing\n session.audioEndTime = session.audioEndTime || metadata.audioEndTime; //timestamp when auto-played audio completed playing\n\n if (!session.waitTime && session.audioStartTime && session.audioEndTime) {\n // waitTime is elapsed time the user waited for auto-played audio to finish\n session.waitTime = session.audioEndTime - session.audioStartTime;\n }\n}\n"],"mappings":";;;;;;;AAAO,SAASA,kBAAkBA,CAACC,OAAO,EAAEC,KAAK,EAAEC,IAAI,EAAE;EACvD,MAAM;IAAEC,EAAE;IAAEC;EAAS,CAAC,GAAGF,IAAI;EAC7B,MAAM;IAAEG;EAAgB,CAAC,GAAGJ,KAAK,IAAI,CAAC,CAAC;EACvCD,OAAO,CAACM,OAAO,GAAGN,OAAO,CAACM,OAAO,IAAI,EAAE;EAEvC,IAAI,CAACF,QAAQ,EAAE;IACbJ,OAAO,CAACM,OAAO,GAAGN,OAAO,CAACM,OAAO,CAACC,MAAM,CAAEC,MAAM,IAAKA,MAAM,CAACL,EAAE,KAAKA,EAAE,CAAC;EACxE,CAAC,MAAM;IACL,MAAMM,IAAI,GAAG;MAAEN;IAAG,CAAC;IACnB,IAAIE,eAAe,EAAE;MACnBL,OAAO,CAACM,OAAO,CAACI,IAAI,CAACD,IAAI,CAAC;IAC5B,CAAC,MAAM;MACLT,OAAO,CAACM,OAAO,GAAG,CAACG,IAAI,CAAC;IAC1B;;IAEA;IACAT,OAAO,CAACW,QAAQ,GAAGT,IAAI,CAACS,QAAQ;EAClC;AACF;AAEO,SAASC,qBAAqBA,CAACZ,OAAO,EAAEa,QAAQ,EAAE;EACvDb,OAAO,CAACc,cAAc,GAAGd,OAAO,CAACc,cAAc,IAAID,QAAQ,CAACC,cAAc,CAAC,CAAC;EAC5Ed,OAAO,CAACe,YAAY,GAAGf,OAAO,CAACe,YAAY,IAAIF,QAAQ,CAACE,YAAY,CAAC,CAAC;;EAEtE,IAAI,CAACf,OAAO,CAACgB,QAAQ,IAAIhB,OAAO,CAACc,cAAc,IAAId,OAAO,CAACe,YAAY,EAAE;IACvE;IACAf,OAAO,CAACgB,QAAQ,GAAGhB,OAAO,CAACe,YAAY,GAAGf,OAAO,CAACc,cAAc;EAClE;AACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,47 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/hotspot",
|
|
3
|
-
"version": "9.0
|
|
3
|
+
"version": "9.2.0-mui-update.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": "pie-framework/pie-elements",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@
|
|
10
|
+
"@emotion/react": "^11.14.0",
|
|
11
|
+
"@emotion/style": "^0.8.0",
|
|
12
|
+
"@mui/icons-material": "^7.3.4",
|
|
13
|
+
"@mui/material": "^7.3.4",
|
|
11
14
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
12
|
-
"@pie-lib/correct-answer-toggle": "
|
|
13
|
-
"@pie-lib/math-rendering": "
|
|
14
|
-
"@pie-lib/render-ui": "
|
|
15
|
-
"@pie-lib/test-utils": "
|
|
16
|
-
"konva": "
|
|
15
|
+
"@pie-lib/correct-answer-toggle": "2.37.0-mui-update.0",
|
|
16
|
+
"@pie-lib/math-rendering": "3.38.0-mui-update.0",
|
|
17
|
+
"@pie-lib/render-ui": "4.47.0-mui-update.0",
|
|
18
|
+
"@pie-lib/test-utils": "0.34.0-mui-update.0",
|
|
19
|
+
"konva": "8.3.0",
|
|
17
20
|
"prop-types": "^15.6.1",
|
|
18
|
-
"react": "
|
|
19
|
-
"react-dom": "
|
|
20
|
-
"react-konva": "
|
|
21
|
+
"react": "18.2.0",
|
|
22
|
+
"react-dom": "18.2.0",
|
|
23
|
+
"react-konva": "18.1.0"
|
|
21
24
|
},
|
|
22
25
|
"author": "pie framework developers",
|
|
23
26
|
"license": "ISC",
|
|
24
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "0e14ff981bcdc8a89a0e58484026496701bfdbc3",
|
|
25
28
|
"scripts": {
|
|
26
29
|
"postpublish": "../../scripts/postpublish"
|
|
27
30
|
},
|
|
28
31
|
"main": "lib/index.js",
|
|
29
|
-
"module": "src/index.js"
|
|
30
|
-
"exports": {
|
|
31
|
-
".": {
|
|
32
|
-
"import": "./esm/element.js",
|
|
33
|
-
"require": "./lib/index.js",
|
|
34
|
-
"default": "./esm/element.js"
|
|
35
|
-
},
|
|
36
|
-
"./configure": {
|
|
37
|
-
"import": "./esm/configure.js",
|
|
38
|
-
"require": "./configure/lib/index.js",
|
|
39
|
-
"default": "./esm/configure.js"
|
|
40
|
-
},
|
|
41
|
-
"./controller": {
|
|
42
|
-
"import": "./esm/controller.js",
|
|
43
|
-
"require": "./controller/lib/index.js",
|
|
44
|
-
"default": "./esm/controller.js"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
32
|
+
"module": "src/index.js"
|
|
47
33
|
}
|
package/src/hotspot/circle.jsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { Circle, Group, Rect } from 'react-konva';
|
|
4
|
-
import { withStyles } from '@material-ui/core/styles';
|
|
5
4
|
import ImageComponent from './image-konva-tooltip';
|
|
6
5
|
import { faCorrect, faWrong } from './icons';
|
|
7
6
|
|
|
@@ -44,7 +43,6 @@ class CircleComponent extends React.Component {
|
|
|
44
43
|
|
|
45
44
|
render() {
|
|
46
45
|
const {
|
|
47
|
-
classes,
|
|
48
46
|
radius,
|
|
49
47
|
hotspotColor,
|
|
50
48
|
isCorrect,
|
|
@@ -105,7 +103,6 @@ class CircleComponent extends React.Component {
|
|
|
105
103
|
/>
|
|
106
104
|
)}
|
|
107
105
|
<Circle
|
|
108
|
-
classes={classes.base}
|
|
109
106
|
radius={radius}
|
|
110
107
|
fill={selected && selectedHotspotColor ? selectedHotspotColor : hotspotColor}
|
|
111
108
|
onClick={this.handleClick}
|
|
@@ -117,6 +114,7 @@ class CircleComponent extends React.Component {
|
|
|
117
114
|
onMouseEnter={this.handleMouseEnter}
|
|
118
115
|
x={x}
|
|
119
116
|
y={y}
|
|
117
|
+
opacity={0.5}
|
|
120
118
|
/>
|
|
121
119
|
{isEvaluateMode && iconSrc ? <ImageComponent src={iconSrc} x={iconX} y={iconY} tooltip={evaluateText} /> : null}
|
|
122
120
|
</Group>
|
|
@@ -124,16 +122,7 @@ class CircleComponent extends React.Component {
|
|
|
124
122
|
}
|
|
125
123
|
}
|
|
126
124
|
|
|
127
|
-
const styles = () => ({
|
|
128
|
-
base: {
|
|
129
|
-
cursor: 'pointer',
|
|
130
|
-
opacity: 0.5,
|
|
131
|
-
position: 'relative',
|
|
132
|
-
},
|
|
133
|
-
});
|
|
134
|
-
|
|
135
125
|
CircleComponent.propTypes = {
|
|
136
|
-
classes: PropTypes.object.isRequired,
|
|
137
126
|
radius: PropTypes.number.isRequired,
|
|
138
127
|
hotspotColor: PropTypes.string.isRequired,
|
|
139
128
|
id: PropTypes.string.isRequired,
|
|
@@ -161,4 +150,4 @@ CircleComponent.defaultProps = {
|
|
|
161
150
|
scale: 1,
|
|
162
151
|
};
|
|
163
152
|
|
|
164
|
-
export default
|
|
153
|
+
export default CircleComponent;
|
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { Layer, Stage } from 'react-konva';
|
|
4
|
-
import {
|
|
5
|
-
import { color } from '@pie-lib/render-ui';
|
|
4
|
+
import { styled } from '@mui/material/styles';
|
|
6
5
|
|
|
7
6
|
import Rectangle from './rectangle';
|
|
8
7
|
import Polygon from './polygon';
|
|
9
8
|
import Circle from './circle';
|
|
10
9
|
|
|
10
|
+
const BaseContainer = styled('div')(({ theme }) => ({
|
|
11
|
+
marginTop: theme.spacing(2),
|
|
12
|
+
marginBottom: theme.spacing(2),
|
|
13
|
+
position: 'relative',
|
|
14
|
+
background: theme.palette.common.white,
|
|
15
|
+
border: `${theme.spacing(1)} solid ${theme.palette.common.white}`,
|
|
16
|
+
width: 'fit-content',
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
const ImageContainer = styled('div')({
|
|
20
|
+
position: 'relative',
|
|
21
|
+
width: 'fit-content',
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const Image = styled('img')({
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
display: 'flex',
|
|
27
|
+
justifyContent: 'center',
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const StyledStage = styled(Stage)({
|
|
31
|
+
left: 0,
|
|
32
|
+
top: 0,
|
|
33
|
+
position: 'absolute',
|
|
34
|
+
});
|
|
35
|
+
|
|
11
36
|
export class Container extends React.Component {
|
|
12
37
|
isSelected(shape) {
|
|
13
38
|
const selectedShape = this.props.session.answers.filter((answer) => answer.id === shape.id)[0];
|
|
@@ -34,7 +59,6 @@ export class Container extends React.Component {
|
|
|
34
59
|
|
|
35
60
|
render() {
|
|
36
61
|
const {
|
|
37
|
-
classes,
|
|
38
62
|
dimensions: { width: withProp, height: heightProp },
|
|
39
63
|
disabled,
|
|
40
64
|
hotspotColor,
|
|
@@ -54,21 +78,19 @@ export class Container extends React.Component {
|
|
|
54
78
|
const height = heightProp * SCALE;
|
|
55
79
|
|
|
56
80
|
return (
|
|
57
|
-
<
|
|
81
|
+
<BaseContainer style={{ padding: strokeWidth / 2 }}>
|
|
58
82
|
{imageUrl ? (
|
|
59
|
-
<
|
|
60
|
-
<
|
|
83
|
+
<ImageContainer>
|
|
84
|
+
<Image
|
|
61
85
|
alt="hotspot-image"
|
|
62
|
-
className={classes.image}
|
|
63
86
|
height="auto"
|
|
64
87
|
src={imageUrl}
|
|
65
88
|
style={{ width, height, maxWidth: width, maxHeight: height }}
|
|
66
89
|
/>
|
|
67
|
-
</
|
|
90
|
+
</ImageContainer>
|
|
68
91
|
) : null}
|
|
69
92
|
|
|
70
|
-
<
|
|
71
|
-
className={classes.stage}
|
|
93
|
+
<StyledStage
|
|
72
94
|
height={height + strokeWidth}
|
|
73
95
|
width={width + strokeWidth}
|
|
74
96
|
x={strokeWidth / 2}
|
|
@@ -142,7 +164,6 @@ export class Container extends React.Component {
|
|
|
142
164
|
|
|
143
165
|
return (
|
|
144
166
|
<Circle
|
|
145
|
-
classes={classes}
|
|
146
167
|
scale={SCALE}
|
|
147
168
|
isEvaluateMode={isEvaluateMode}
|
|
148
169
|
isCorrect={isCorrect}
|
|
@@ -166,49 +187,13 @@ export class Container extends React.Component {
|
|
|
166
187
|
);
|
|
167
188
|
})}
|
|
168
189
|
</Layer>
|
|
169
|
-
</
|
|
170
|
-
</
|
|
190
|
+
</StyledStage>
|
|
191
|
+
</BaseContainer>
|
|
171
192
|
);
|
|
172
193
|
}
|
|
173
194
|
}
|
|
174
195
|
|
|
175
|
-
const styles = (theme) => ({
|
|
176
|
-
base: {
|
|
177
|
-
marginTop: theme.spacing.unit * 2,
|
|
178
|
-
marginBottom: theme.spacing.unit * 2,
|
|
179
|
-
position: 'relative',
|
|
180
|
-
background: theme.palette.common.white,
|
|
181
|
-
border: `${theme.spacing.unit}px solid ${theme.palette.common.white}`,
|
|
182
|
-
width: 'fit-content',
|
|
183
|
-
},
|
|
184
|
-
image: {
|
|
185
|
-
alignItems: 'center',
|
|
186
|
-
display: 'flex',
|
|
187
|
-
justifyContent: 'center',
|
|
188
|
-
},
|
|
189
|
-
imageContainer: {
|
|
190
|
-
position: 'relative',
|
|
191
|
-
width: 'fit-content',
|
|
192
|
-
},
|
|
193
|
-
stage: {
|
|
194
|
-
left: 0,
|
|
195
|
-
top: 0,
|
|
196
|
-
position: 'absolute',
|
|
197
|
-
},
|
|
198
|
-
resize: {
|
|
199
|
-
borderBottom: `1px solid ${color.disabled()}`,
|
|
200
|
-
borderRight: `1px solid ${color.disabled()}`,
|
|
201
|
-
bottom: '-10px',
|
|
202
|
-
cursor: 'se-resize',
|
|
203
|
-
height: '10px',
|
|
204
|
-
position: 'absolute',
|
|
205
|
-
right: '-10px',
|
|
206
|
-
width: '10px',
|
|
207
|
-
},
|
|
208
|
-
});
|
|
209
|
-
|
|
210
196
|
Container.propTypes = {
|
|
211
|
-
classes: PropTypes.object.isRequired,
|
|
212
197
|
dimensions: PropTypes.object.isRequired,
|
|
213
198
|
disabled: PropTypes.bool.isRequired,
|
|
214
199
|
hotspotColor: PropTypes.string.isRequired,
|
|
@@ -229,4 +214,4 @@ Container.defaultProps = {
|
|
|
229
214
|
scale: 1,
|
|
230
215
|
};
|
|
231
216
|
|
|
232
|
-
export default
|
|
217
|
+
export default Container;
|